Gestion des fichiers en Java : comment travailler avec des fichiers Java ?

Publié: 2021-03-12

Java est un langage de programmation très populaire. Outre une architecture et des composants robustes , l'une des principales raisons de son succès et de sa popularité est sa prise en charge de nombreuses fonctionnalités. La gestion des fichiers en Java est l'une de ces fonctionnalités qui nous permet de travailler avec des fichiers. Aujourd'hui, nous allons découvrir diverses opérations que nous pouvons effectuer avec les concepts de fichiers en Java .

Table des matières

Qu'est-ce que la gestion des fichiers Java ?

Comme mentionné, la gestion des fichiers en Java vous permet de travailler avec des fichiers. Il s'agit d'une fonctionnalité Java définie dans la classe File du package Java.io. Le package io dans Java.io signifie Input et Output. Vous trouverez toutes les classes dont vous aurez besoin pour effectuer des opérations d'entrée ou de sortie dans le package Java.io.

Vous pouvez accéder à cette classe File et l'utiliser pour exécuter diverses fonctions en créant un objet et en fournissant le nom du fichier ou du répertoire. La syntaxe pour créer un objet et utiliser la classe File est :

importer java.io.File ;

Fichier obj = nouveau fichier("nom.txt");

Comme indiqué dans la syntaxe ci-dessus, vous devez d'abord importer la classe File à partir du package Java.io. Une fois importé, tout ce que vous avez à faire est de créer un objet et de spécifier le nom du fichier ou du répertoire avec lequel vous souhaitez travailler. Pour mentionner le nom du répertoire dans un système d'exploitation Windows, vous devez utiliser "\\". Par exemple, vous devez utiliser « C:\\Users\\MyFolder\\MySubFolder » et non « C:\Users|MyFolder|MySubFolder ». Cependant, pour d'autres systèmes d'exploitation tels que Linux, vous pouvez utiliser le simple \ comme d'habitude.

Toutes les opérations d'E/S (Entrée/Sortie) des concepts de fichiers en Java sont effectuées à l'aide d'un flux. Approfondissons ce qu'est un flux et comment ces opérations sont-elles effectuées avec lui ?

Qu'est-ce que le concept de flux en Java ?

En termes plus simples, un flux est une série de données. Il existe deux types de flux, qui sont :

  • Flux d' octets : ce type de flux fonctionne avec des données d'octets. Les opérations d'E/S sont effectuées avec un flux d'octets lorsque vous lisez ou écrivez des données au format d'octet (8 bits).
  • Flux de caractères : Ce type de flux fonctionne avec une séquence de caractères. Les opérations d'E/S sont effectuées avec un flux de caractères lorsque vous lisez ou écrivez des données à l'aide de caractères.

Checkout : meilleurs projets Java sur GitHub

Quelles sont les différentes méthodes disponibles pour la gestion des fichiers en Java ?

La classe File fournit diverses méthodes prédéfinies pour vous aider à effectuer toutes les opérations d'E/S en les appelant simplement. Le tableau ci-dessous montre toutes les méthodes, ainsi que les actions qu'elles effectuent.

Méthode Taper La description
peut lire() booléen Il vérifie si vous pouvez lire le fichier ou non.
peut écrire() booléen Il teste si vous pouvez écrire dans le fichier ou non.
créerNouveauFichier() booléen Cela créera un nouveau fichier vide.
effacer() booléen Cette méthode supprimera le fichier spécifié.
existe() booléen Il vérifie si le fichier mentionné existe.
obtenirNom() Chaîne de caractères Renvoie le nom du fichier.
getAbsolutePath() Chaîne de caractères Renvoie le chemin d'accès absolu du fichier.
longueur() Long Il renvoie la taille du fichier en octets.
liste() Chaîne de caractères[] Renvoie une liste des noms de fichiers présents dans le répertoire.
mkdir() booléen Cette méthode créera un nouveau répertoire.

Comment effectuer différentes opérations de gestion de fichiers Java ?

Puisque vous connaissez les différentes méthodes disponibles dans la classe File, il est temps de les utiliser pour effectuer diverses opérations de gestion de fichiers Java . Pour commencer, vous pouvez effectuer les actions suivantes sur un fichier.

  • Créez un nouveau fichier.
  • Obtenir des informations sur le fichier.
  • Ecrire dans un fichier.
  • Lire à partir d'un fichier.
  • Supprimer un fichier.

Nous allons passer par un exemple pour effectuer chacune de ces opérations. Dans le premier exemple, nous allons créer un nouveau fichier, puis utiliser le même fichier pour effectuer d'autres tâches.

Création d'un fichier

Vous pouvez créer un fichier avec la méthode createNewFile(). L'exécution de la méthode renverra true ou false. Si le fichier est créé avec succès, il renverra un true. En revanche, si le fichier existe déjà, il renverra un faux.

Il est toujours conseillé d'utiliser cette méthode dans un bloc try and catch car elle peut lever une exception si le fichier n'est pas créé avec succès. Vous pouvez en savoir plus à ce sujet dans notre guide sur la gestion des exceptions en Java . Voir l'exemple ci-dessous qui utilise la méthode createNewFile() pour créer un nouveau fichier vide.

importer java.io.File ; // Importation de la classe File

import java.io.IOException ; // Importation de la classe IOException pour la gestion des erreurs

classe publique CreateFileExample{

public static void main(String[] args){

essayer{

Fichier obj = nouveau fichier("nouveaufichier.txt");

if(obj.createNewFile()){ // s'il renvoie vrai, c'est-à-dire créé avec succès

System.out.println("Le fichier est créé avec succès :" + obj.getName());

}

else{ // si elle renvoie false, c'est-à-dire que le fichier existe déjà

System.out.println("Le fichier existe déjà");

}

}

catch (IOException e){ // pour intercepter les exceptions si une erreur se produit

System.out.println("Une erreur s'est produite");

e.printStackTrace();

}

}

}

Sortir:

Le fichier est créé avec succès : newFile.txt

Obtenir des informations sur les fichiers

Vous pouvez utiliser diverses méthodes définies dans la classe File pour accéder aux différentes informations du fichier, telles que le nom, la longueur, le chemin absolu, la lisibilité, etc. Certaines des méthodes pour obtenir des informations sur les fichiers sont utilisées dans l'exemple ci-dessous.

importer java.io.File ;

classe publique AccessInfoExample{

public static void main(String[] args){

// Création d'un objet

Fichier obj = nouveau fichier("nouveaufichier.txt");

si(obj.existe()){

// Obtenir le nom du fichier

System.out.println("Le nom du fichier est :" + obj.getName());

// Obtenir le chemin absolu

System.out.println("Le chemin absolu du fichier est :" + obj.getAbsolutePath());

// Vérification si le fichier est accessible en écriture

System.out.println("Le fichier est-il accessible en écriture?" + obj.canWrite());

// Vérification si le fichier est lisible

System.out.println("Le fichier est-il lisible ?" + obj.canRead());

// Obtenir la longueur en octets

// Il affichera 0 car nous n'avons encore rien écrit dans notre fichier

System.out.println("Taille du fichier en octets :" + obj.length());

}

autre{

System.out.println("Fichier nommé" + obj.getName() + "n'existe pas.");

}

}

}

Sortir:

Le nom du fichier est : newFile.txt

Le chemin absolu du fichier est : D:JavaProgramming:newFile.txt

Le fichier est-il accessible en écriture ? vrai

Le fichier est-il lisible ? vrai

Taille du fichier en octets : 0

La sortie de l'exemple ci-dessus peut varier en fonction du nom du fichier, du chemin où vous l'avez enregistré et de sa taille. Si le fichier spécifié n'existe pas, il affichera "Le fichier nommé newFile.txt n'existe pas".

Ecrire dans un fichier

Pour écrire des données en octets, utilisez la classe FileOutputStream et, pour les caractères, utilisez la classe FileWriter. Dans l'exemple ci-dessous, nous utiliserons la classe FileWriter et sa méthode prédéfinie write() pour écrire quelque chose dans notre "newFile".

Une chose à noter avant de commencer avec l'exemple est que chaque fois que vous ouvrez un fichier en écriture, vous devez le fermer avec la méthode close(). La fermeture du fichier va permettre de récupérer les ressources allouées par le compilateur Java pour écrire dans un fichier. Voyons comment procéder dans l'exemple.

importer java.io.FileWriter ; // Importation de la classe FileWriter

import java.io.IOException ; // Importation de la classe IOException pour la gestion des erreurs

classe publique WriteExample{

public static void main(String[] args){

essayer{

FileWriter obj = new FileWriter("newFile.txt");

obj.write("Ceci sera écrit dans le fichier newFile.txt!");

obj.close(); // Fermeture du fichier

System.out.println("Nous avons réussi à écrire dans le fichier et à le fermer.");

}

catch(IOException e){

System.out.println("Une erreur s'est produite.");

e.printStackTrace();

}

}

}

Sortir:

Nous avons écrit avec succès dans le fichier et l'avons fermé.

Lecture à partir d'un fichier

Vous pouvez utiliser FileInputStream pour lire des données d'octets et FileReader pour lire des données de caractères à partir d'un fichier. Alternativement, vous pouvez également utiliser la classe Scanner pour lire à partir d'un fichier. Comme nous avons déjà utilisé FileWriter pour écrire des données, nous utiliserons la classe Scanner pour lire les données dans cet exemple. Comme lors de l'écriture, la fermeture du fichier ouvert est également nécessaire lors de la lecture.

importer java.io.File ; // Importation de la classe File

importer java.io.FileNotFoundException ; // Importation de la classe pour la gestion des erreurs

importer java.util.Scanner ; // Importation de la classe Scanner pour la lecture des fichiers texte

classe publique ReadExample{

public static void main(String[] args){

essayer{

Fichier obj = nouveau fichier("nouveaufichier.txt");

Scanner robj = nouveau Scanner(obj);

tandis que (robj.hasNextLine()){

Chaîne dataInfo = robj.nextLine();

System.out.println(dataInfo);

}

robj.close();

}

catch(FileNotFoundException e){

System.out.println("Une erreur s'est produite.");

e.printStackTrace();

}

}

}

Sortir:

Cela sera écrit dans le fichier newFile.txt !

Suppression d'un fichier

Vous pouvez supprimer un fichier en utilisant la méthode delete() de la classe File. Vous pouvez également supprimer un dossier entier s'il est vide. Supprimons notre fichier "newFile.txt" dans l'exemple ci-dessous.

importer java.io.File ; // Importe la classe File

classe publique DeleteExample{

public static void main(String[] args){

Fichier obj = nouveau fichier("nouveaufichier.txt");

if(obj.delete()){

System.out.println("Le fichier nommé" + obj.getName() + "est supprimé avec succès.");

}

autre{

System.out.println("Fichier non supprimé.");

}

}

}

Sortir:

Le fichier nommé newFile.txt est supprimé avec succès.

Lisez également : Idées et sujets de projet Java

Apprenez des cours de logiciels en ligne dans les meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.

Conclusion

Dans cet article, vous avez tout appris sur la gestion des fichiers en Java . Java fournit diverses fonctionnalités de ce type, ce qui en fait l'un des langages de programmation les plus populaires au monde. Il n'est donc pas surprenant que le salaire des développeurs Java en Inde soit très élevé. Si vous souhaitez devenir développeur Java et obtenir un salaire élevé, le cours en ligne Java gratuit d'upGrad est fait pour vous.

Le cours fait partie du programme upStart, une initiative de perfectionnement inestimable. Une fois que vous avez terminé le cours gratuit et obtenu la certification, vous pouvez également opter pour la certification PG d'upGrad en développement Full-Stack . Vous obtenez plus de 400 heures de matériel d'apprentissage avec une expérience pratique à travers des projets. Suivez le cours et excellez dans le domaine du développement logiciel avec les concepts de programmation Java.

Comment lire et écrire dans des fichiers en Java ?

Un objet de classe InputStream représente une source de données à partir de laquelle des octets peuvent être lus, et un objet de classe OutputStream représente une destination sur laquelle des octets peuvent être écrits. Ces objets sont utilisés avec diverses classes du package java.io pour lire et écrire des fichiers, pour lire et écrire des données à partir de sockets et pour effectuer diverses autres opérations d'entrée et de sortie.

Quelles sont les différentes bibliothèques de gestion de fichiers en Java ?

Il existe plusieurs bibliothèques de gestion de fichiers fournies en java. Chacun a son but et son utilisation. Le package java.io définit les classes de gestion de fichiers de base. Nous pouvons donc dire que c'est la bibliothèque de gestion de fichiers la plus polyvalente. Le package java.nio, également connu sous le nom de package New Input/Output, est principalement utilisé pour le transfert de données à haut débit, à faible latence et à faible bande passante. Il est sécurisé, léger et indépendant de la plate-forme. Ce package étend le package java.io en ajoutant des API basées sur les canaux. En outre, le package java.nio.file est destiné à l'interface de programmation des systèmes de fichiers. Un système de fichiers est une organisation hiérarchique des données, indépendante du support physique, dans laquelle les informations sont stockées. Un système de fichiers permet le partage de fichiers et la communication inter-processus entre les applications. En outre, le package java.nio.file.attribute concerne les classes et les interfaces des attributs du système de fichiers.

Quelles sont les applications de la gestion de fichiers en Java ?

La gestion des fichiers est l'un des nombreux sujets de programmation Java intéressants et précieux. Il est vital pour les programmeurs Java de savoir comment créer, ouvrir, lire, écrire, ajouter et supprimer un fichier en Java. Cela aide les programmeurs à manipuler les données dans un fichier. De nombreuses opérations peuvent être effectuées sur un fichier, telles que connaître la longueur du fichier, lire le contenu d'un fichier, déterminer si le fichier est accessible en écriture, etc.