• 10 heures
  • Facile

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 06/08/2024

Manipulez les fichiers

Jusqu’à maintenant, nos programmes sont isolés et n'interagissent pas avec d'autres composants (fichiers, programme, etc.). Dans ce chapitre, nous verrons comment donner un autre pouvoir à nos programmes : manipuler des fichiers.

Lisez des fichiers

En Java, il peut parfois être utile de lire le contenu d’un fichier pour récupérer des données. Qu’il s’agisse d’un fichier que nous avons déjà sauvegardé ou d’un autre fichier, il est possible de le lire, ligne par ligne. Voyons ça avec un exemple :

public class Main1 {

    public static void main(String[] args) {
        
        try {
            // Création d'un fileReader pour lire le fichier
            FileReader fileReader = new FileReader("/path/to/the/file");
            
            // Création d'un bufferedReader qui utilise le fileReader
            BufferedReader reader = new BufferedReader(fileReader);
            
            // une fonction à essayer pouvant générer une erreur
            String line = reader.readLine();
            
            while (line != null) {
                // affichage de la ligne
                System.out.println(line);
                // lecture de la prochaine ligne
                line = reader.readLine();
            }
            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Ici, nous ne faisons qu’afficher chaque ligne de notre fichier, mais intéressons-nous aux différents objets de notre code :

  • Le try catch qui nous permet de gérer les exceptions.

  • Un FileReader qui va lire le fichier au chemin qui lui est donné en argument.

  • Un BufferedReader qui va utiliser le fileReader pour lire le fichier ligne par ligne.

  • Une condition while qui nous permet de répéter le code tant que nous ne sommes pas à la fin du fichier.

Écrivez dans des fichiers

Nous venons de voir comment lire un fichier, maintenant voyons comment écrire dans un fichier. Il peut être intéressant pour nos programmes Java de pouvoir écrire dans un fichier pour plusieurs raisons, comme par exemple pour traiter des fichiers de données (XML, CSV, etc.). Il est courant d’utiliser un programme informatique pour traiter ou modifier de gros volumes de données, et Java peut tout à fait s’en occuper  💪.

Notre programme pourrait aussi créer et écrire dans un fichier uniquement destiné à être lu plus tard, ce qui revient à sauvegarder l’état du programme. Prenons un exemple pour enregistrer les paramètres d’un programme Java :

public class Main2 {

    public static void main(String[] args) {

        try {
            // Création d'un fileWriter pour écrire dans un fichier
            FileWriter fileWriter = new FileWriter("/path/to/the/file", false);

            // Création d'un bufferedWriter qui utilise le fileWriter
            BufferedWriter writer = new BufferedWriter(fileWriter);

            // ajout d'un texte à notre fichier
            writer.write("preferenceNewsletter=false");

            // Retour à la ligne
            writer.newLine();

            writer.write("preferenceColor=#425384");
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

Dans notre exemple, on enregistre les textes  "preferenceNewsletter=false"  et  "preferenceColor=#425384"  dans notre fichier. On utilise la méthode  newLine  du  BufferedWriter  pour changer de ligne entre les 2 textes.

Pour écrire notre texte, nous avons donc dû utiliser plusieurs objets qui fonctionnent ensemble :

  • le “try catch” qui nous permet de gérer les exceptions ;

  • un “FileWriter” qui va préparer le fichier au chemin qui lui est donné en argument ;

  • un “BufferedWriter” qui va utiliser le “fileWrite” pour écrire dans le fichier.

En résumé

  • La lecture du contenu des fichiers se fait grâce à un ”BufferedReader“ qui va lire le fichier ligne par ligne.

  • L’écriture de texte dans un fichier se fait avec un “BufferedWriter“.

Lorsqu’on manipule des fichiers, il faut toujours gérer les exceptions car les fichiers sont des éléments extérieurs à notre programme, et les problèmes d’accès ou de droits sont fréquents.

Et si vous obteniez un diplôme OpenClassrooms ?
  • Formations jusqu’à 100 % financées
  • Date de début flexible
  • Projets professionnalisants
  • Mentorat individuel
Trouvez la formation et le financement faits pour vous
Exemple de certificat de réussite
Exemple de certificat de réussite