Accéder au contenu principal
Documents
Tableaux JavaProgrammation orientée objet en JavaTraitement des fichiers en JavaIntroduction To JavaLes bases du langage JavaMots-clés Java

Java Lire les fichiers

La lecture de fichiers est une tâche courante dans la programmation Java, souvent nécessaire pour le traitement et la manipulation de données. Java fournit plusieurs classes et méthodes pour lire efficacement les fichiers, avec des options pour traiter les données textuelles et binaires.

Classes clés pour la lecture de fichiers

  • FileReader: Utilisé pour lire des fichiers texte de manière simple et efficace.
  • BufferedReader: S'enroule autour de FileReader pour lire du texte à partir d'un flux d'entrée de caractères, en mettant les caractères en mémoire tampon pour une lecture efficace des caractères, des tableaux et des lignes.
  • Fichiers: Faisant partie du paquetage java.nio.file, il fournit des méthodes statiques pour lire les fichiers et les répertoires.
  • Scanner: Une classe polyvalente utilisée pour analyser les types primitifs et les chaînes de caractères à l'aide d'expressions régulières.

Exemples

Exemple 1 : Utilisation de FileReader et BufferedReader


import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class FileReaderExample {
    public static void main(String[] args) {
        try (BufferedReader br = new BufferedReader(new FileReader("example.txt"))) {
            String line;
            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
    

Dans cet exemple, FileReader et BufferedReader sont utilisés pour lire un fichier texte ligne par ligne. L'instruction try-with-resources garantit que le fichier est fermé après la lecture.

Exemple 2 : Utilisation de la classe de fichiers


import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;

public class FilesExample {
    public static void main(String[] args) {
        try {
            List<String> lines = Files.readAllLines(Paths.get("example.txt"));
            for (String line : lines) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
    

La classe Files offre un moyen simple de lire toutes les lignes d'un fichier dans une page List. Cette méthode est efficace pour les petits fichiers.

Exemple 3 : Utilisation du scanner


import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class ScannerExample {
    public static void main(String[] args) {
        try (Scanner scanner = new Scanner(new File("example.txt"))) {
            while (scanner.hasNextLine()) {
                System.out.println(scanner.nextLine());
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}
    

La classe Scanner est utilisée ici pour lire un fichier ligne par ligne. Il est utile pour analyser les données avec des délimiteurs spécifiques.

Conseils et bonnes pratiques

  • Gestion des ressources: Utilisez try-with-resources pour vous assurer que les flux de fichiers sont fermés automatiquement, ce qui permet d'éviter les fuites de ressources.
  • Traitement des exceptions: Manipulez toujours IOException et FileNotFoundException lorsque vous travaillez avec des opérations d'entrée/sortie de fichiers.
  • Encodage des caractères: Tenez compte de l'encodage des caractères lorsque vous lisez des fichiers. Utilisez InputStreamReader avec un jeu de caractères spécifié si nécessaire.
    
    new BufferedReader(new InputStreamReader(new FileInputStream("example.txt"), "UTF-8"));
                
  • Taille du fichier: Pour les fichiers volumineux, envisagez de lire par morceaux ou d'utiliser des fichiers à mémoire mappée afin d'éviter les problèmes de mémoire.
  • Concurrence: Si plusieurs threads doivent lire le même fichier, envisagez d'utiliser des blocs synchronisés ou des classes sûres pour gérer l'accès.

Apprendre l'essentiel de Java

Développez vos compétences en Java à partir de la base et maîtrisez les concepts de programmation.
Commencez à apprendre gratuitement