18. Travailler avec les E/S de fichiers en Java

La gestion des fichiers est une partie essentielle de la programmation, et en Java, ce n'est pas différent. La capacité de lire et d'écrire des fichiers est cruciale pour de nombreux types d'applications, du traitement des données aux systèmes de gestion de contenu. Dans ce chapitre, nous explorerons comment Java gère les entrées/sorties (E/S), plus spécifiquement, comment travailler avec des fichiers à l'aide des classes et des interfaces disponibles dans l'API Java standard.

Streams et lecteurs/écrivains

Avant d'entrer dans les détails de la manipulation des fichiers en Java, il est important de comprendre la différence entre les flux et les lecteurs/écrivains. En termes simples, les flux sont des flux de données binaires et sont utilisés pour traiter des données binaires telles que des fichiers image ou vidéo. Les lecteurs et rédacteurs sont destinés aux caractères de texte et conviennent mieux à la lecture et à l'écriture de données texte telles que des fichiers .txt ou .csv.

Classes d'E/S fondamentales

Java fournit plusieurs classes dans son package java.io pour travailler avec des fichiers. Certaines des classes les plus fondamentales incluent :

  • Fichier : représente le chemin d'accès d'un fichier ou d'un répertoire et peut être utilisé pour créer, supprimer, inspecter et renommer des fichiers ou des répertoires.
  • FileInputStream et FileOutputStream : autorisent respectivement la lecture et l'écriture de fichiers binaires.
  • FileReader et FileWriter : facilitent respectivement la lecture et l'écriture de fichiers texte.
  • BufferedReader et BufferedWriter : fournissent un tampon pour la lecture et l'écriture, ce qui peut améliorer les performances lors des opérations d'E/S fréquentes.

Lecture de fichiers avec Java

Pour lire un fichier en Java, vous pouvez utiliser la classe FileInputStream pour les fichiers binaires ou FileReader pour les fichiers texte. Voici un exemple simple de lecture d'un fichier texte :

essayez (lecteur BufferedReader = new BufferedReader (new FileReader ("file.txt"))) { Ligne de ficelle ; while ((line = reader.readLine()) != null) { System.out.println(ligne); } } catch (IOException e) { e.printStackTrace(); }

Ce code utilise un try-with-resources pour garantir que le BufferedReader est fermé après utilisation, évitant ainsi les fuites de ressources. La méthode readLine() lit le fichier ligne par ligne jusqu'à ce que la fin du fichier (EOF) soit atteinte.

Écrire dans des fichiers avec Java

Pour écrire dans un fichier, vous pouvez utiliser la classe FileOutputStream pour les fichiers binaires ou FileWriter pour les fichiers texte. Vous trouverez ci-dessous un exemple de comment écrire dans un fichier texte :

essayez (BufferedWriterwriter = new BufferedWriter(new FileWriter("file.txt"))) { write.write("Première ligne\n"); writer.write("Deuxième ligne\n"); } catch (IOException e) { e.printStackTrace(); }

Tout comme la lecture, try-with-resources est utilisé pour fermer BufferedWriter une fois l'écriture terminée. La méthode write() est utilisée pour écrire des chaînes dans le fichier.

Travailler avec des fichiers binaires

En ce qui concerne les fichiers binaires, vous devez utiliser FileInputStream et FileOutputStream. Voici un exemple de copie d'un fichier binaire :

essayez (FileInputStream in = new FileInputStream("input.bin"); FileOutputStream out = new FileOutputStream("output.bin")) { octet[] tampon = nouvel octet[1024]; int octetsLire ; while ((bytesRead = in.read(buffer)) != -1) { out.write(buffer, 0, bytesRead); } } catch (IOException e) { e.printStackTrace(); }

Cet exemple lit le fichier d'entrée en morceaux de 1 024 octets et écrit chaque morceau dans le fichier de sortie jusqu'à ce que la fin du fichier d'entrée soit atteinte.

Gestion des exceptions d'E/S

Les opérations d'E/S peuvent échouer pour diverses raisons, telles que des fichiers qui n'existent pas, un manque d'autorisations ou des problèmes matériels. C'est pourquoi la gestion des exceptions est cruciale lorsque l'on travaille avec des E/S en Java. Les opérations d'E/S renvoient une IOException qui doit être interceptée ou déclarée dans l'en-tête de la méthode.

Nouvelles API d'E/S

Avec l'introduction de Java 7, l'API d'E/S a été étendue avec le package java.nio.file, qui offre une approche plus moderne et flexible du travail avec les fichiers et les répertoires. Des classes comme Path, Paths et Files ont rendu les opérations d'E/S plus intuitives et puissantes.

Conclusion

Travailler avec des fichiers en Java est une compétence essentielle pour tout programmeur. Grâce aux classes et méthodes fournies par l'API I/O, il est possible d'effectuer des opérations complexes de mmanière simple et efficace. Il est important de toujours gérer les exceptions d'E/S de manière appropriée et d'utiliser les dernières API lorsque cela est possible pour profiter des améliorations et des fonctionnalités supplémentaires qu'elles offrent.

La pratique de la lecture et de l'écriture de fichiers de différents formats et tailles vous aidera à vous familiariser avec les nuances des E/S en Java et vous préparera à gérer les besoins de stockage et de traitement des données de vos applications.

p>

Répondez maintenant à l’exercice sur le contenu :

Parmi les affirmations suivantes concernant la gestion des fichiers en Java, laquelle est correcte ?

Tu as raison! Félicitations, passez maintenant à la page suivante

Vous avez raté! Essayer à nouveau.

Image de l'article Sérialisation d'objets

Page suivante de lebook gratuit :

114Sérialisation d'objets

0 minutes

Obtenez votre certificat pour ce cours gratuitement ! en téléchargeant lapplication Cursa et en lisant lebook qui sy trouve. Disponible sur Google Play ou App Store !

Get it on Google Play Get it on App Store

+ 6,5 millions
d'étudiants

Certificat gratuit et
valide avec QR Code

48 mille exercices
gratuits

Note de 4,8/5 dans les
magasins d'applications

Cours gratuits en
vidéo, audio et texte