Lecture et écriture de fichiers

Entrées/sorties et flux en Java

Alex Liu

Software Development Engineer

Conversions (casting)

  • Conversion entre types primitifs

  • Conversion élargissante — automatique, plus petit -> plus grand

    • byte -> short -> char -> int -> long -> float -> double
// Conversion élargissante — automatique
byte myByte = 8;
int myInt = myByte;
  • Conversion réductrice — manuelle, plus grand -> plus petit
// Conversion réductrice — manuelle
double myDouble = 3.14;
int myInt = (int) myDouble; // Remarquez le (int)
Entrées/sorties et flux en Java

Comprendre des conversions spécifiques pour la lecture de fichier

  • Conversion de int vers char : char data = (char) 123;
// Valeur Unicode du caractère 'a'
int data = 97;
// Afficher directement la donnée au format `int`
System.out.print(data);
// Convertir de `int` à `char` et afficher
System.out.print((char)data);
97
a
1 https://www.ascii-code.com/
Entrées/sorties et flux en Java

Lire des données avec FileReader

  • Importer la classe FileReader pour activer la lecture de fichiers
import java.io.FileReader;
  • Lire le fichier, afficher caractère par caractère, puis le fermer
FileReader fr = new FileReader("example.txt");
int data = fr.read();
// Lire et afficher chaque caractère
while (data != -1) {
    System.out.print((char) data);
    data = fr.read();
}
fr.close(); // Fermer le fichier pour libérer les ressources
Entrées/sorties et flux en Java

Lecture efficace avec BufferedReader

  • BufferedReader - import java.io.BufferedReader;
    • Lit les fichiers texte ligne par ligne
    • Plus efficace pour les gros fichiers
// Créer un objet BufferedReader
BufferedReader br = new BufferedReader(new FileReader("example.txt"));
String line;
// Utiliser .readLine() pour lire le fichier ligne par ligne
while ((line = br.readLine())!= null){
  System.out.println(line);
}
br.close();
Entrées/sorties et flux en Java

Écrire des données avec FileWriter

  • FileWriter :
    • Remplace le contenu existant par défaut — prudence pour éviter toute perte de données !
  • Importer FileWriter
import java.io.FileWriter;


// Créer un nouvel objet `FileWriter` FileWriter fw = new FileWriter("example.txt"); // Écrire les données dans le fichier avec `.write()` fw.write("Overwriting the file."); fw.close()
Entrées/sorties et flux en Java

Ajouter des données avec FileWriter

  • FileWriter
    • Permet d'ajouter au fichier en mode append sans écraser le contenu existant

$$

// Initialiser `FileWriter` en mode ajout (append)
FileWriter fw = new FileWriter("example.txt", true);
// Ajouter des données au fichier
fw.write("Appending data.");
fw.close()
Entrées/sorties et flux en Java

Écriture efficace avec BufferedWriter

  • BufferedWriter - import java.io.BufferedWriter;
    • Écrit du texte plus efficacement en plus gros blocs
    • Réduit le nombre d'opérations d'écriture
// Créer un objet BufferedWriter
BufferedWriter bw = new BufferedWriter(new FileWriter("example.txt"));
bw.write("Writing data");

// .newLine() pour ajouter des sauts de ligne
bw.newLine(); 
bw.close();
Entrées/sorties et flux en Java

Passons à la pratique !

Entrées/sorties et flux en Java

Preparing Video For Download...