Text an eine Textdatei in Java anhängen
-
Anhängen von Text an eine Textdatei mit der Klasse
FileOutputStream
in Java -
Anhängen von Text an eine Textdatei mit der Klasse
FileWriter
in Java -
Anhängen von Text an eine Textdatei mit der Klasse
BufferedWriter
in Java -
Anhängen von Text an eine Textdatei mit der Klasse
Files
in Java - Text an eine Textdatei in Java anhängen
![Text an eine Textdatei in Java anhängen](/img/Java/feature-image---append-to-a-text-file-in-java.webp)
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
- Wie man Zeilenumbrüche aus einer Datei in Java entfernt
- Schließen Sie eine Datei in Java
- Dateifilter in Java
- Dateigröße in Java abrufen
- Dateitrenner in Java
- Erstellen Sie eine Java-JAR-Datei und führen Sie sie aus