• 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 8/6/24

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.

Example of certificate of achievement
Example of certificate of achievement