Ouvrir un fichier en Java

Rupam Yadav 12 octobre 2023
  1. Utiliser la classe Desktop pour ouvrir un fichier en Java
  2. Utilisation de la classe FileInputStream en Java
  3. Utiliser la classe BufferedReader pour ouvrir un fichier en Java
  4. Utiliser la classe Scanner pour ouvrir un fichier en Java
Ouvrir un fichier en Java

Il existe de nombreuses façons d’ouvrir un fichier en Java. Nous allons en discuter quelques-uns ici dans cet article.

Utiliser la classe Desktop pour ouvrir un fichier en Java

Le package Java AWT possède une classe Java Desktop utilisée pour lancer des applications enregistrées sur le bureau natif pour gérer un fichier ou un URI. Sa mise en œuvre dépend de la plate-forme ; par conséquent, il est nécessaire de vérifier si le système d’exploitation prend en charge Desktop ou non. Il lève FileNotFoundException s’il n’y a pas d’application enregistrée ou si elle ne parvient pas à être lancée.

La classe Desktop possède la méthode open() qui lance l’application enregistrée pour ouvrir un fichier qu’elle prend en argument.

Nous créons un nouvel objet de classe File en passant le chemin du fichier texte en argument. Il renvoie immédiatement si le Desktop.isDesktopSupported() renvoie false si le système ne prend pas en charge le bureau. On obtient l’instance Desktop Desktop du contexte de navigateur actuel.

Nous utilisons la méthode exists() sur l’objet file pour vérifier si le fichier existe. Nous appelons desktop.open() pour ouvrir le fichier dans l’éditeur de texte par défaut.

import java.awt.*;
import java.io.File;
public class OpenFile {
  public static void main(String args[]) {
    try {
      File file = new File("/Users/john/Desktop/demo.txt");
      if (!Desktop.isDesktopSupported()) {
        System.out.println("not supported");
        return;
      }
      Desktop desktop = Desktop.getDesktop();
      if (file.exists())
        desktop.open(file);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

Utilisation de la classe FileInputStream en Java

La classe FileInputStream est utilisée pour lire des données orientées octets telles que des données audio, image, vidéo, etc. Elle peut également être utilisée pour lire des flux de caractères car elle obtient des octets d’entrée à partir de fichiers. Par conséquent, il peut être utilisé pour ouvrir et lire des fichiers. La classe FileReader est cependant recommandée pour la lecture de fichiers.

Nous créons un FileInputStream fIS à lire à partir de l’objet fichier, f dans notre code. Nous lisons le contenu du fichier et l’écrivons dans le terminal. Dans la boucle while, on lit les caractères du flux jusqu’à ce que la méthode read() renvoie -1.

import java.io.File;
import java.io.FileInputStream;
public class OpenFile {
  public static void main(String args[]) {
    try {
      File f = new File("/Users/john/Desktop/demo.txt");
      FileInputStream fIS = new FileInputStream(f);
      System.out.println("file content: ");
      int r = 0;
      while ((r = fIS.read()) != -1) {
        System.out.print((char) r);
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

Production:

file content: 
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer eget quam malesuada, molestie nibh id, vestibulum libero. Vestibulum sed ligula ut ligula bibendum pharetra. Suspendisse est odio, euismod vel porta ac, dapibus at lorem. In a leo vestibulum, commodo erat eget, cursus purus. Integer hendrerit orci eu erat pretium hendrerit. Etiam dignissim tempus orci. Etiam suscipit non sapien vitae condimentum. Fusce nec molestie nulla. Cras ut vestibulum tortor. Duis velit mi, dapibus vel scelerisque vitae, sagittis vitae purus. Ut et tempus eros, id scelerisque dolor. In suscipit ante sem.

Utiliser la classe BufferedReader pour ouvrir un fichier en Java

La classe BufferedReader lit le texte à partir d’un flux d’entrée basé sur des caractères. Il faut un objet lecteur que l’on passe donc un nouveau FileReader à son constructeur. FileReader est une classe pratique pour lire les fichiers de caractères.

BufferedReader crée un flux d’entrée de caractères de mise en mémoire tampon qui utilise une taille par défaut. Nous lisons à partir du flux jusqu’à ce que la méthode read() renvoie -1 et imprime la sortie du fichier.

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
public class OpenFile {
  public static void main(String args[]) {
    try {
      File fil = new File("/Users/john/Desktop/demo2.txt");
      BufferedReader br = new BufferedReader(new FileReader(fil));
      System.out.println("file content: ");
      int r = 0;
      while ((r = br.read()) != -1) {
        System.out.print((char) r);
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

Production:

file content:-- 
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer eget quam malesuada, molestie nibh id, vestibulum libero. Vestibulum sed ligula ut ligula bibendum pharetra. Suspendisse est odio, euismod vel porta ac, dapibus at lorem. In a leo vestibulum, commodo erat eget, cursus purus. Integer hendrerit orci eu erat pretium hendrerit. Etiam dignissim tempus orci. Etiam suscipit non sapien vitae condimentum. Fusce nec molestie nulla. Cras ut vestibulum tortor. Duis velit mi, dapibus vel scelerisque vitae, sagittis vitae purus. Ut et tempus eros, id scelerisque dolor. In suscipit ante sem.

Utiliser la classe Scanner pour ouvrir un fichier en Java

La classe Scanner en Java appartient au package java.util. Il peut analyser les types primitifs et les chaînes à l’aide d’expressions régulières et peut être utilisé pour lire des données à partir de fichiers. On crée un objet de classe Scanner en spécifiant le fichier dans le constructeur.

Nous lisons le fichier ligne par ligne en utilisant la méthode hasNextLine() et imprimons chaque ligne à l’intérieur de la boucle while jusqu’à ce que nous ayons une ligne suivante à lire dans le fichier.

import java.io.File;
import java.util.Scanner;
public class OpenFile {
  public static void main(String args[]) {
    try {
      File file = new File("/Users/john/Desktop/demo1.txt");
      Scanner scanner = new Scanner(file);
      while (scanner.hasNextLine()) System.out.println(scanner.nextLine());
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

Production:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer eget quam malesuada, molestie nibh id, vestibulum libero. Vestibulum sed ligula ut ligula bibendum pharetra. Suspendisse est odio, euismod vel porta ac, dapibus at lorem. In a leo vestibulum, commodo erat eget, cursus purus. Integer hendrerit orci eu erat pretium hendrerit. Etiam dignissim tempus orci. Etiam suscipit non sapien vitae condimentum. Fusce nec molestie nulla. Cras ut vestibulum tortor. Duis velit mi, dapibus vel scelerisque vitae, sagittis vitae purus. Ut et tempus eros, id scelerisque dolor. In suscipit ante sem.
Auteur: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Article connexe - Java File