📝 Ce que vous apprendrez

  • Comment lire et écrire dans des fichiers
  • Différence entre les cours d'eau de caractère et les cours d'eau tamponnés
  • Meilleures pratiques en matière de traitement des fichiers
  • Essayer avec des ressources pour une fermeture en toute sécurité

📦 Travailler avec des fichiers

Commencez par importer les classes de traitement de fichiers :

import java.io.*;

📖 Lire un fichier - FileReader & BufferedReader

try {
    BufferedReader reader = new BufferedReader(new FileReader("data.txt"));
    String line;

    while ((line = reader.readLine()) != null) {
        System.out.println(line);
    }

    reader.close();
} catch (IOException e) {
    System.out.println("Error reading file: " + e.getMessage());
}

✍️ Écrire dans un fichier - FileWriter

try {
    FileWriter writer = new FileWriter("output.txt");
    writer.write("Hello, Java File I/O!");
    writer.close();
} catch (IOException e) {
    System.out.println("Error writing file: " + e.getMessage());
}

Par défaut, FileWriter écrase le fichier. Pour ajouter à la place :

FileWriter writer = new FileWriter("output.txt", true);  // true = append mode

🧼 Essayer avec les ressources (Auto-Close)

Java peut fermer automatiquement des ressources telles que les lecteurs et les écrivains :

try (BufferedReader reader = new BufferedReader(new FileReader("data.txt"))) {
    String line;
    while ((line = reader.readLine()) != null) {
        System.out.println(line);
    }
} catch (IOException e) {
    System.out.println("Error: " + e.getMessage());
}

🧾 Vérifier si le fichier existe

File file = new File("data.txt");
if (file.exists()) {
    System.out.println("File exists");
} else {
    System.out.println("File not found");
}

🧱 Autres méthodes de fichiers utiles

file.getName();       // file name
file.length();        // file size in bytes
file.delete();        // delete file
file.createNewFile(); // create file

📘 Recap

  • Utiliser FileReader/BufferedReader pour lire les fichiers
  • Utiliser FileWriter pour écrire dans les fichiers (et ajouter si nécessaire)
  • Toujours traiter les exceptions
  • Utiliser l'option "essayer avec les ressources" pour fermer automatiquement les flux.