Java et le Café : Servir les Données avec les Flux et les Fichiers

Introduction

Travailler avec des flux de données et des fichiers en Java est comme préparer et servir du café en utilisant différents outils et techniques. Que vous ayez besoin de lire des données à partir d’un fichier ou d’écrire des informations dans un fichier, Java offre des moyens puissants de le faire.

Flux d’Entrée et de Sortie

Les flux d’entrée et de sortie (I/O) en Java sont comme les tuyaux qui transportent le café. Ils permettent de lire et d’écrire des données.

Lire un Fichier

Ouvrez un terminal et utilisez les commandes suivantes pour créer un fichier appelé menu.txt et y écrire quelques lignes de texte :

1
2
3
4
5
6
7
$ echo "Espresso" > menu.txt
$ echo "Latte" >> menu.txt
$ echo "Cappuccino" >> menu.txt
$ cat menu.txt # Permet d'afficher le contenu du fichier menu.txt
Espresso
Latte
Cappuccino
Attention

Le shell suivant ne fonctionne qu’en console sous Linux. Si vous êtes sous Windows ou MacOs, faites-le à la main. Créez un fichier nommé menu.txt et en respectant bien les sauts de lignes, mettez :

Espresso
Latte
Cappuccino

Voici comment vous pouvez lire un fichier en Java :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
import java.io.FileReader;
import java.io.BufferedReader;

public class LireCafe {
  public static void main(String[] args) {
    try {
      FileReader fr = new FileReader("menu.txt");
      BufferedReader br = new BufferedReader(fr);

      String ligne;
      while ((ligne = br.readLine()) != null) {
        System.out.println(ligne);
      }

      br.close(); // N'oubliez pas de fermer le BufferedReader
    } catch (Exception e) {
      System.out.println("Erreur lors de la lecture du fichier : " + e.getMessage());
    }
  }
}

Nous pouvons rendre le code encore plus concis :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
import java.io.FileReader;
import java.io.BufferedReader;

public class LireCafe {
  public static void main(String[] args) {
    try (BufferedReader br = new BufferedReader(new FileReader("menu.txt"))) {
      String ligne;
      while ((ligne = br.readLine()) != null) {
        System.out.println(ligne);
      }
    } catch (Exception e) {
      System.out.println("Erreur lors de la lecture du fichier : " + e.getMessage());
    }
  }
}
1
2
3
4
$ java LireCafe
Espresso
Latte
Cappuccino

Si vous choisissez de ne pas gérer les erreurs à ce stade de votre code, celui-ci prendra la forme suivante :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
import java.io.FileReader;
import java.io.BufferedReader;

public class LireCafe {
  public static void main(String[] args) throws Exception {
    FileReader fr = new FileReader("menu.txt");
    BufferedReader br = new BufferedReader(fr);

    String ligne;
    while ((ligne = br.readLine()) != null) {
      System.out.println(ligne);
    }

    br.close(); // N'oubliez pas de fermer le BufferedReader
  }
}

Écrire dans un Fichier

Voici comment vous pouvez écrire dans un fichier en Java :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import java.io.FileWriter;
import java.io.BufferedWriter;

public class EcrireCafe {
  public static void main(String[] args) {
    try (BufferedWriter bw = new BufferedWriter(new FileWriter("commande.txt"))) {
      bw.write("Espresso");
      bw.newLine();
      bw.write("Latte");
    } catch (Exception e) {
      System.out.println("Erreur lors de l'écriture dans le fichier : " + e.getMessage());
    }
  }
}
1
2
3
$ cat commande.txt # Permet d'afficher le contenu du fichier commande.txt
Espresso
Latte

Travailler avec les Fichiers

Java offre également des moyens de manipuler les fichiers, comme vérifier si un fichier existe ou créer un nouveau fichier.

Vérifier si un Fichier Existe

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
import java.io.File;

public class VerifierCafe {
  public static void main(String[] args) {
    File fichier = new File("menu.txt");
    if (fichier.exists()) {
      System.out.println("Le fichier existe !");
    } else {
      System.out.println("Le fichier n'existe pas.");
    }
  }
}

Créer un Nouveau Fichier

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
import java.io.File;

public class CreerCafe {
  public static void main(String[] args) {
    File fichier = new File("nouveau_menu.txt");
    try {
      if (fichier.createNewFile()) {
        System.out.println("Fichier créé !");
      } else {
        System.out.println("Le fichier existe déjà.");
      }
    } catch (Exception e) {
      System.out.println("Erreur lors de la création du fichier : " + e.getMessage());
    }
  }
}

Conclusion

Les flux de données et les fichiers en Java sont des outils essentiels pour lire, écrire et manipuler des données. Comme un barista expert utilisant différents outils pour préparer et servir du café, vous pouvez utiliser ces techniques pour créer des applications robustes et flexibles.