• 10 hours
  • Easy

Free online content available in this course.

course.header.alt.is_video

course.header.alt.is_certifying

Got it!

Last updated on 7/25/22

Manipulez les fichiers

Log in or subscribe for free to enjoy all this course has to offer!

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 static void main(String[] args) {
// 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);
try {
// une fonction à essayer pouvant générer une erreur
line = reader.readLine();
while(line != null) {
// affichage de la ligne
System.out.println(line);
// lecture de la prochaine ligne
line = reader.readLine();
}
catch (IOException e) {
e.printStackTrace();
}
reader.close();
}

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 static void main(String[] args) {
// 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);
try {
// ajout d’un texte à notre fichier
writer.write(“preferenceNewsletter=false”);
// Retour à la ligne
writer.newLine();
writer.write(“preferenceColor=#425384”);
catch (IOException e) {
e.printStackTrace();
}
writer.close();
}

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.

Example of certificate of achievement
Example of certificate of achievement