Ajouter du texte à un fichier texte en Java

Mohammad Irfan 12 octobre 2023
  1. Ajouter du texte à un fichier texte à l’aide de la classe FileOutputStream en Java
  2. Ajouter du texte à un fichier texte à l’aide de la classe FileWriter en Java
  3. Ajouter du texte à un fichier texte à l’aide de la classe BufferedWriter en Java
  4. Ajouter du texte à un fichier texte à l’aide de la classe Files en Java
  5. Ajouter du texte à un fichier texte 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

Article connexe - Java IO