Travailler avec le système de fichiers en Java : guide complet

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Travailler avec le système de fichiers en Java : de File à NIO



Travailler avec le système de fichiers est l'une des tâches fondamentales du développement en Java. Qu'il s'agisse de lire des configurations, d'écrire des logs ou de traiter des données utilisateur, savoir interagir correctement avec les fichiers et les répertoires est essentiel pour tout développeur Java. Dans cet article, nous allons détailler les principales classes et approches pour travailler avec le système de fichiers, en commençant par le classique java.io.File et en terminant par le moderne java.nio.file.



La classe File : bases du travail avec les fichiers et dossiers



La classe java.io.File existe en Java depuis la toute première version et offre des fonctionnalités de base pour travailler avec les chemins, les fichiers et les répertoires. Elle ne lit ni n'écrit directement les données, mais permet d'effectuer des opérations de gestion du système de fichiers.



Création d'un objet File et vérification d'existence :

import java.io.File;

public class FileExample { public static void main(String[] args) { File file = new File("example.txt"); File dir = new File("myFolder");

System.out.println("Le fichier existe : " + file.exists()); System.out.println("C'est un répertoire : " + dir.isDirectory()); }}


Création de fichiers et de répertoires :

File newFile = new File("newFile.txt");if (newFile.createNewFile()) {    System.out.println("Fichier créé : " + newFile.getName());} else {    System.out.println("Le fichier existe déjà");}

File newDir = new File("newDirectory");if (newDir.mkdir()) { System.out.println("Dossier créé");}

// Créer des répertoires imbriquésFile nestedDir = new File("parent/child/grandchild");if (nestedDir.mkdirs()) { System.out.println("Dossiers imbriqués créés");}


Obtention d'informations sur un fichier :

File infoFile = new File("example.txt");System.out.println("Chemin absolu : " + infoFile.getAbsolutePath());System.out.println("Taille : " + infoFile.length() + " octets");System.out.println("Dernière modification : " + infoFile.lastModified());System.out.println("Dossier parent : " + infoFile.getParent());


Suppression et renommage :

File fileToDelete = new File("temp.txt");if (fileToDelete.delete()) {    System.out.println("Fichier supprimé");}

File oldFile = new File("old.txt");File newFile = new File("new.txt");if (oldFile.renameTo(newFile)) { System.out.println("Fichier renommé");}


Lecture et écriture de fichiers : flux d'entrée-sortie classiques



Pour la lecture et l'écriture directes des données, on utilise les flux d'entrée-sortie (I/O streams). Les classes principales sont : FileInputStream, FileOutputStream pour les données binaires et FileReader, FileWriter pour les données textuelles.



Écrire du texte dans un fichier avec FileWriter :

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

public class WriteExample { public static void main(String[] args) { try (FileWriter writer = new FileWriter("output.txt")) { writer.write("Bonjour le monde !"); writer.write("Ceci est la deuxième ligne."); System.out.println("Écriture réussie"); } catch (IOException e) { System.err.println("Erreur d'écriture : " + e.getMessage()); } }}


Lire du texte depuis un fichier avec FileReader et BufferedReader :

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

public class ReadExample { public static void main(String[] args) { try (BufferedReader reader = new BufferedReader(new FileReader("output.txt"))) { String line; while ((line = reader.readLine()) != null) { System.out.println(line);

Blogs

Book Recommendations