Ajouter du texte à un fichier texte en Java
-
Ajouter du texte à un fichier texte à l’aide de la classe
FileOutputStream
en Java -
Ajouter du texte à un fichier texte à l’aide de la classe
FileWriter
en Java -
Ajouter du texte à un fichier texte à l’aide de la classe
BufferedWriter
en Java -
Ajouter du texte à un fichier texte à l’aide de la classe
Files
en Java - Ajouter du texte à un fichier texte en Java
Ce didacticiel explique comment ajouter du texte à un fichier texte existant en Java. Nous avons également répertorié quelques exemples de codes pour mieux vous guider.
La lecture et l’écriture sont deux des opérations les plus élémentaires que vous pouvez effectuer lorsque vous travaillez avec des fichiers. Il existe plusieurs façons d’écrire ou d’ajouter des données à un fichier en Java. Dans cet article, nous allons découvrir les quatre manières différentes d’ajouter à un fichier texte.
Ajouter du texte à un fichier texte à l’aide de la classe FileOutputStream
en Java
La classe FileOutputStream
est utilisée pour écrire des données binaires dans des fichiers. Il est surtout préféré pour les types de données primitifs comme int
ou float
, mais il peut également être utilisé pour écrire des données orientées caractères.
La chaîne doit d’abord être convertie en un tableau d’octets avant d’être écrite ; vous pouvez utiliser la méthode getBytes()
à cet effet. Nous devons également passer true
comme deuxième argument à son constructeur. Ce deuxième argument est pour l’indicateur d’ajout booléen, et il est fait pour indiquer que nous essayons d’ajouter à un fichier existant.
S’il est ignoré, alors la classe FileOutputStream
écrasera le contenu du fichier. Il créera un nouveau fichier si le fichier n’est pas déjà présent à l’emplacement mentionné.
Voici un exemple où nous essayons d’ajouter la phrase The quick brown fox jumps over the lazy dog
à un fichier existant. Les \r
et \n
sont utilisés pour insérer le texte au début d’une nouvelle ligne.
import java.io.FileOutputStream;
public class Main {
public static void main(String args[]) {
try {
String filePath = "C:\\Users\\Lenovo\\Desktop\\demo.txt";
FileOutputStream f = new FileOutputStream(filePath, true);
String lineToAppend = "\r\nThe quick brown fox jumps over the lazy dog";
byte[] byteArr = lineToAppend.getBytes(); // converting string into byte array
f.write(byteArr);
f.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
Ajouter du texte à un fichier texte à l’aide de la classe FileWriter
en Java
La classe Java FileWriter
est conçue pour écrire des flux de caractères dans un fichier. Nous pouvons l’utiliser pour ajouter des caractères ou des chaînes à un fichier existant ou à un nouveau fichier. Si le fichier n’est pas présent au chemin mentionné, un nouveau fichier est créé et les données sont écrites dans ce nouveau fichier.
Contrairement à la classe FileOutputStream
précédente, nous n’avons pas besoin de convertir les chaînes en octets avant d’écrire. Cependant, nous devons également passer true
comme deuxième argument au constructeur FileWriter
, ce qui indique que nous essayons d’ajouter à un fichier existant.
S’il est omis, il écrasera le contenu existant du fichier. Le code suivant montre comment nous pouvons ajouter une seule ligne à un fichier existant en utilisant FileWriter
.
import java.io.FileWriter;
public class SimpleTesting {
public static void main(String args[]) {
try {
String filePath = "C:\\Users\\Lenovo\\Desktop\\demo.txt";
FileWriter fw = new FileWriter(filePath, true);
String lineToAppend = "\r\nThe quick brown fox jumps over the lazy dog";
fw.write(lineToAppend);
fw.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
Ajouter du texte à un fichier texte à l’aide de la classe BufferedWriter
en Java
La classe FileWriter
est souvent encapsulée par d’autres écrivains comme le BufferedWriter
. Ce processus est effectué car un BufferedWriter
est beaucoup plus efficace qu’un FileWriter
.
Le BufferedWriter
est préféré au FileWriter
lorsque nous avons plusieurs opérations d’écriture. Il utilise une mémoire tampon interne pour stocker les données qui doivent être ajoutées au fichier. Lorsque ce tampon est plein, ou que nous n’avons plus rien d’autre à ajouter, le BufferedWriter
écrira dans le fichier réel.
Il écrit de gros morceaux de données dans le fichier à partir de sa mémoire tampon au lieu d’y écrire fréquemment ; son conduit à moins d’appels système. Par conséquent, il est beaucoup plus efficace qu’un FileWriter
normal.
Mais si nous avons une seule opération d’écriture, alors le BufferedWriter
ajoute une autre étape dans le processus d’écriture. Donc, il serait préférable d’utiliser simplement le FileWriter
.
Pour utiliser le BufferedWriter
, nous avons d’abord besoin d’un objet FileWriter
que nous passerons au constructeur du BufferedWriter
. Assurez-vous d’utiliser true
pour l’indicateur d’ajout.
Le code suivant montre le fonctionnement de BufferedWriter
en Java.
import java.io.BufferedWriter;
import java.io.FileWriter;
public class Main {
public static void main(String args[]) {
try {
String filePath = "C:\\Users\\Lenovo\\Desktop\\demo.txt";
FileWriter fw = new FileWriter(filePath, true);
BufferedWriter bw = new BufferedWriter(fw);
String lineToAppend = "\r\nThe quick brown fox jumps over the lazy dog";
bw.write(lineToAppend);
bw.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
Ajouter du texte à un fichier texte à l’aide de la classe Files
en Java
La classe d’utilitaires Files
a été ajoutée dans Java 7, et elle fournit une autre façon d’écrire des données dans des fichiers ; nous utilisons la méthode Files.write()
pour ce faire. Cette méthode nécessite le chemin du fichier et le tableau d’octets de la chaîne doit également être ajouté.
Nous devons également spécifier le StandardOpenOption.APPEND
pour ajouter du texte à un fichier existant. Assurez-vous que le fichier est présent au chemin donné ; sinon, il renverra une NoSuchFileException
.
Cette méthode n’est pas préférée si nous devons écrire plusieurs fois dans le même fichier car le fichier sera également ouvert et fermé plusieurs fois, ce qui diminue les performances globales.
Le code suivant ci-dessous montre comment la méthode Files.write()
fonctionne dans les E/S Java.
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
public class Main {
public static void main(String args[]) {
try {
String file = "C:\\Users\\Lenovo\\Desktop\\demo.txt";
String lineToAppend = "\r\nThe quick brown fox jumps over the lazy dog";
byte[] byteArr = lineToAppend.getBytes();
Files.write(Paths.get(file), byteArr, StandardOpenOption.APPEND);
} catch (Exception e) {
System.out.println(e);
}
}
}
Ajouter du texte à un fichier texte en Java
Java fournit plusieurs options pour la gestion des fichiers. Nous pouvons ajouter des données à un fichier en utilisant FileOutputStream
, FileWriter
, BufferedWriter
ou la classe utilitaire Files
.
Pour les classes utilitaires FileOutputStream
et Files
, nous devons d’abord convertir la chaîne en un tableau d’octets, puis la passer à la méthode write()
.
Le BufferedWriter
est préférable lorsque nous devons écrire plusieurs fois une petite quantité de données dans le même fichier. En revanche, les classes utilitaires FileWriter
et Files
feront plusieurs appels système pour un grand nombre d’écritures ; cela diminue leur performance globale.
Article connexe - Java File
- Comment supprimer les sauts de ligne d'un fichier en Java
- Fermer un fichier en Java
- Déplacer le fichier du répertoire actuel vers un nouveau répertoire en Java
- Sélecteur de fichiers en Java
- Créer un fichier s'il n'existe pas en Java
- Lire le fichier à partir des ressources en Java