Text an eine Textdatei in Java anhängen

Mohammad Irfan 12 Oktober 2023
  1. Anhängen von Text an eine Textdatei mit der Klasse FileOutputStream in Java
  2. Anhängen von Text an eine Textdatei mit der Klasse FileWriter in Java
  3. Anhängen von Text an eine Textdatei mit der Klasse BufferedWriter in Java
  4. Anhängen von Text an eine Textdatei mit der Klasse Files in Java
  5. Text an eine Textdatei in Java anhängen
Text an eine Textdatei in Java anhängen

In diesem Tutorial wird erläutert, wie Sie in Java Text an eine vorhandene Textdatei anhängen. Wir haben auch einige Beispielcodes aufgelistet, um Sie besser zu führen.

Lesen und Schreiben sind zwei der grundlegendsten Operationen, die Sie beim Arbeiten mit Dateien ausführen können. In Java gibt es mehrere Möglichkeiten, Daten in eine Datei zu schreiben oder an diese anzuhängen. In diesem Artikel lernen wir die vier verschiedenen Möglichkeiten zum Anhängen an eine Textdatei kennen.

Anhängen von Text an eine Textdatei mit der Klasse FileOutputStream in Java

Die Klasse FileOutputStream wird verwendet, um Binärdaten in Dateien zu schreiben. Es wird meistens für primitive Datentypen wie int oder float bevorzugt, kann aber auch zum Schreiben von zeichenorientierten Daten verwendet werden.

Der String muss vor dem Schreiben zuerst in ein Array von Bytes umgewandelt werden; Sie können dazu die Methode getBytes() verwenden. Wir müssen auch true als zweites Argument an seinen Konstruktor übergeben. Dieses zweite Argument ist für das boolesche append-Flag und zeigt an, dass wir versuchen, an eine vorhandene Datei anzuhängen.

Wird sie ignoriert, überschreibt die Klasse FileOutputStream den Inhalt der Datei. Es wird eine neue Datei erstellt, wenn die Datei nicht bereits am angegebenen Ort vorhanden ist.

Hier ist ein Beispiel, in dem wir versuchen, den Satz The quick brown fox jumps over the lazy dog an eine bestehende Datei anzuhängen. Mit \r und \n wird der Text am Anfang einer neuen Zeile eingefügt.

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);
    }
  }
}

Anhängen von Text an eine Textdatei mit der Klasse FileWriter in Java

Die Java-Klasse FileWriter wurde entwickelt, um Zeichenströme in eine Datei zu schreiben. Wir können es verwenden, um Zeichen oder Zeichenketten an eine vorhandene oder eine neue Datei anzuhängen. Wenn die Datei unter dem genannten Pfad nicht vorhanden ist, wird eine neue Datei erstellt und Daten in diese neue Datei geschrieben.

Im Gegensatz zur vorherigen Klasse FileOutputStream müssen wir die Strings vor dem Schreiben nicht in Bytes umwandeln. Wir müssen jedoch auch true als zweites Argument an den Konstruktor FileWriter übergeben, was anzeigt, dass wir versuchen, an eine vorhandene Datei anzuhängen.

Wenn es weggelassen wird, wird der vorhandene Inhalt der Datei überschrieben. Der folgende Code demonstriert, wie wir mit FileWriter eine einzelne Zeile an eine bestehende Datei anhängen können.

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);
    }
  }
}

Anhängen von Text an eine Textdatei mit der Klasse BufferedWriter in Java

Die Klasse FileWriter wird oft von anderen Autoren wie dem BufferedWriter umschlossen. Dieser Vorgang wird durchgeführt, weil ein BufferedWriter viel effizienter ist als ein FileWriter.

Der BufferedWriter wird dem FileWriter vorgezogen, wenn wir mehrere Schreiboperationen haben. Es verwendet einen internen Pufferspeicher, um die Daten zu speichern, die an die Datei angehängt werden müssen. Wenn dieser Puffer voll ist oder wir nichts mehr hinzuzufügen haben, schreibt der BufferedWriter in die eigentliche Datei.

Es schreibt große Datenmengen aus seinem Puffer in die Datei, anstatt sie häufig zu schreiben. Dies führt zu weniger Systemaufrufen. Daher ist er viel effizienter als ein normaler FileWriter.

Aber wenn wir einen einzelnen Schreibvorgang haben, dann fügt der BufferedWriter einen weiteren Schritt im Schreibprozess hinzu. Es ist also besser, nur den FileWriter zu verwenden.

Um den BufferedWriter zu verwenden, benötigen wir zunächst ein FileWriter-Objekt, das wir an den Konstruktor des BufferedWriter übergeben. Stellen Sie sicher, dass Sie true für das Append-Flag verwenden.

Der folgende Code demonstriert die Funktionsweise von BufferedWriter in 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);
    }
  }
}

Anhängen von Text an eine Textdatei mit der Klasse Files in Java

Die Dienstprogrammklasse Files wurde in Java 7 hinzugefügt und bietet eine andere Möglichkeit, Daten in Dateien zu schreiben; Dazu verwenden wir die Methode Files.write(). Diese Methode benötigt den Dateipfad und benötigt auch das Byte-Array des anzuhängenden Strings.

Wir müssen auch die StandardOpenOption.APPEND angeben, um Text an eine vorhandene Datei anzuhängen. Stellen Sie sicher, dass die Datei im angegebenen Pfad vorhanden ist; andernfalls wird eine NoSuchFileException zurückgegeben.

Diese Methode wird nicht bevorzugt, wenn wir mehrmals in dieselbe Datei schreiben müssen, da die Datei auch mehrmals geöffnet und geschlossen wird, was die Gesamtleistung verringert.

Der folgende Code unten zeigt, wie die Methode Files.write() in Java I/O funktioniert.

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);
    }
  }
}

Text an eine Textdatei in Java anhängen

Java bietet mehrere Optionen für die Dateibehandlung. Wir können Daten an eine Datei anhängen, indem wir FileOutputStream, FileWriter, BufferedWriter oder die Dienstprogrammklasse Files verwenden.

Für die Utility-Klassen FileOutputStream und Files müssen wir den String zuerst in ein Byte-Array konvertieren und dann an die Methode write() übergeben.

Der BufferedWriter wird bevorzugt, wenn wir eine kleine Datenmenge mehrmals in dieselbe Datei schreiben müssen. Andererseits führen die Dienstprogrammklassen FileWriter und Files mehrere Systemaufrufe für eine große Anzahl von Schreibvorgängen durch; dies verringert ihre Gesamtleistung.

Verwandter Artikel - Java File

Verwandter Artikel - Java IO