Cet article explique comment écrire des données dans un fichier texte en Java. La solution crée le fichier s'il n'existe pas ou tronque le fichier avant de l'écrire s'il existe déjà.

Il existe plusieurs méthodes et classes que nous pouvons utiliser pour écrire dans un fichier en Java. En voici quelques uns:

1. Utilisation Files class

Avec Java 7, nous pouvons utiliser le Classe de fichiers du package NIO, qui fournit diverses méthodes utilitaires pour effectuer des opérations sur les fichiers et les répertoires. Il propose des méthodes telles que readAllLines(), readAllBytes(), newBufferedWriter(), et write() qui peut être utilisé pour lire le contenu d'un fichier et écrivez du texte dans le fichier de manière efficace.

Télécharger le code

 
Avec Java 11, nous pouvons également utiliser le Files.writeString() méthode pour écrire une chaîne dans un fichier en utilisant le jeu de caractères et les options spécifiés. Il renvoie le chemin du fichier et lancera un IOException si une erreur d'E/S se produit lors de l'écriture dans le fichier.

Télécharger le code

2. Utilisation FileWriter avec BufferedWriter class

FileWriter est une classe pratique pour écrire des flux de caractères en utilisant le codage de caractères et la taille du tampon par défaut. Nous pouvons créer une instance de cette classe avec le nom de fichier et utiliser le write() méthode pour écrire le texte dans le fichier.

Télécharger le code

 
Il est conseillé d'envelopper un BufferedWriter autour de FileWriter car ses opérations d'écriture sont très coûteuses. Le BufferedWriter La classe est utilisée pour écrire des caractères mis en mémoire tampon dans un fichier. Il améliore les performances d'écriture en réduisant le nombre d'opérations sur le disque. Nous pouvons créer une instance de cette classe avec un FileWriter objet et utiliser le write() méthode pour écrire le texte dans le fichier.

Télécharger le code

3. Utilisation de la bibliothèque de Guava

La bibliothèque Guava fournit un moyen pratique d'écrire des données dans des fichiers en Java. Il a une méthode statique Files.asCharSink(File, Charset, FileWriteMode) method du com.google.common.io.Files classe, qui peut être utilisée pour écrire des données de caractères dans le fichier donné en utilisant le jeu de caractères donné. Lorsqu'aucun mode n'est fourni, le fichier sera tronqué avant l'écriture, ou un nouveau fichier est créé lorsque le fichier cible n'existe pas.

Télécharger le code

4. Utiliser Apache Commons IO

Apache Commons IO est une autre bonne bibliothèque qui peut être utilisée pour effectuer une opération d'écriture sur une plate-forme sur un fichier. Nous pouvons utiliser le writeStringToFile(File, String, Charset) méthode de org.apache.commons.io.FileUtils classe pour écrire une chaîne dans un fichier. Si le fichier existe déjà, alors le fichier sera tronqué avant l'écriture.

Télécharger le code

5. Utilisation PrintWriter avec BufferedWriter

Nous pouvons utiliser le PrintWriter classe dans les situations qui nécessitent l’écriture de caractères plutôt que d’octets. Cependant, sans mise en mémoire tampon, chaque invocation de PrintWriter print() La méthode entraînerait la conversion des caractères en octets qui seraient ensuite écrits immédiatement dans le fichier, ce qui peut être très inefficace. Par conséquent, il est recommandé de mettre en mémoire tampon la sortie de PrintWriter au fichier avec BufferedWriter, comme indiqué ci-dessous:

Télécharger le code

6. Utilisation FileOutputStream avec OutputStreamWriter

La FileOutputStream la classe peut être utilisée pour écrire des données binaires dans un fichier. Nous pouvons créer une instance de cette classe avec le nom de fichier et utiliser le write() méthode pour écrire les octets dans le fichier. Pour écrire des caractères au lieu d'octets, nous devrions l'utiliser avec un OutputStreamWriter, qui peut servir de pont entre les flux de caractères et les flux d'octets. Pour une efficacité optimale, il est conseillé d'emballer un BufferedWriter autour de OutputStreamWriter dont les opérations d'écriture sont coûteuses.

Télécharger le code

 
Nous pouvons également utiliser un PrintStream pour ajouter des fonctionnalités à un flux de sortie. Mais tous les caractères imprimés par un PrintStream sont convertis en octets à l'aide de l'encodage de caractères par défaut de la plate-forme.

Télécharger le code

Il s'agit d'écrire dans un fichier en Java.

 
Regarde aussi:

Ajouter du texte à un fichier en Java