Java en français : Travailler avec les fichiers

Introduction aux fichiers en Java

Java offre plusieurs classes et méthodes pour manipuler les fichiers et interagir avec le système de fichiers d'un ordinateur. Les classes principales incluent File, FileReader et FileWriter, toutes provenant du package java.io.

Accès aux fichiers

On peut accéder à des fichiers et des dossiers en utilisant la classe File. Voici la syntaxe :

import java.io.File;

File monFichier = new File(cheminDuFichier);

Le constructeur de la classe File accepte un cheminDuFichier, qui détermine l’emplacement et le nom du fichier. Une fois créé, l'objet monFichier peut être utilisé pour effectuer des opérations sur le fichier ou le répertoire défini par cheminDuFichier.

Méthodes de la classe File

L'objet File inclut plusieurs méthodes utiles pour interagir avec le fichier ou le répertoire spécifié : - canRead() : retourne vrai si le fichier est lisible. - canWrite() : retourne vrai si le fichier est modifiable. - createNewFile() : crée un fichier vide, retourne vrai en cas de succès. - delete() : supprime un fichier, peut supprimer un répertoire s'il est vide. - exists() : retourne vrai si le fichier ou le répertoire existe. - getName() : retourne le nom du fichier ou du répertoire. - getAbsolutePath() : retourne le chemin complet du fichier ou du répertoire. - isDirectory() : retourne vrai si l'instance désigne un répertoire. - isFile() : retourne vrai si l'instance désigne un fichier. - length() : retourne la taille du fichier en octets. - list() : retourne un tableau de chaînes contenant les fichiers dans le répertoire. - mkdir() : crée un répertoire.

Exemple d'accès à un fichier

Voici un exemple qui crée un objet File, vérifie si le fichier associé existe et, si ce n'est pas le cas, le crée. Ce processus est entouré d'un bloc try ... catch pour gérer les éventuelles erreurs système :

import java.io.File;
import java.io.IOException;

public class ExempleFichier {
  public static void main(String[] args) {
    try {
      File monFichier = new File("test.txt");
      if (monFichier.exists()) {
        System.out.println("Le fichier existe : " + monFichier.getName());
      } else {
        if (monFichier.createNewFile()) {
          System.out.println("Fichier créé : " + monFichier.getName());
        } else {
          System.out.println("Le fichier n'a pas pu être créé.");
        }
      }
    } catch (IOException e) {
      System.out.println("Une erreur a été lancée.");
      e.printStackTrace();
    }
  }
}

Écriture dans un fichier

Pour écrire des données dans un fichier, vous pouvez utiliser la classe FileWriter. Voici la syntaxe :

import java.io.FileWriter;

FileWriter monEcrivain = new FileWriter(cheminDuFichier, ajouter);

Le constructeur de FileWriter prend un cheminDuFichier qui définit l'emplacement et le nom du fichier. L'objet monEcrivain peut alors être utilisé pour écrire dans le fichier défini par cheminDuFichier. Le paramètre optionnel ajouter indique si l'écriture doit se faire à la fin du fichier.

Méthodes de FileWriter

La classe FileWriter fournit les méthodes suivantes : - close() : ferme le FileWriter, à appeler après avoir terminé les écritures. - write() : écrit une chaîne ou une séquence de caractères dans le fichier.

Exemple d'écriture dans un fichier

Voici comment écrire une chaîne dans un fichier, tout en utilisant à nouveau une gestion d'erreur :

import java.io.FileWriter;
import java.io.IOException;

public class ExempleEcritureFichier {
  public static void main(String[] args) {
    try {
      FileWriter monEcrivain = new FileWriter("test.txt");
      monEcrivain.write("Bonjour le monde !");
      monEcrivain.close();
    } catch (IOException e) {
      System.out.println("Une erreur a été lancée.");
      e.printStackTrace();
    }
  }
}

Lecture d'un fichier

Pour lire des données à partir d'un fichier, utilisez la classe FileReader. Voici comment cela se fait :

import java.io.FileReader;

FileReader monLecteur = new FileReader(cheminDuFichier);

Le constructeur de FileReader nécessite un cheminDuFichier qui spécifie le fichier à lire.

Méthodes de FileReader

La classe FileReader inclut les méthodes suivantes : - close() : ferme le FileReader, à appeler après toutes les lectures. - read() : lit un caractère du fichier ou lit des caractères dans un tampon.

Exemple de lecture d'un fichier

Voici un exemple qui lit tous les caractères d'un fichier :

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

public class ExempleLectureFichier {
  public static void main(String[] args) {
    try {
      FileReader monLecteur = new FileReader("test.txt");
      int i;
      while ((i = monLecteur.read()) != -1)
        System.out.print((char)i);
      monLecteur.close();
    } catch (IOException e) {
      System.out.println("Une erreur a été lancée.");
      e.printStackTrace();
    }
  }
}