Java an Datei anhängen

Heute werden wir uns damit befassen, wie man in Java an eine Datei anhängt. Das Anhängen an eine Datei in Java ist eine gängige Java-IO-Operation. Wenn wir beispielsweise etwas in Serverprotokollen ausdrucken, wird es an die vorhandene Datei angehängt.

Java an Datei anhängen

Wir können in Java an eine Datei anhängen, indem wir folgende Klassen verwenden.

  1. Java an Datei anhängen mit FileWriter
  2. Inhalte in einer vorhandenen Datei in Java mit BufferedWriter anhängen
  3. Text an Datei in Java anhängen mit PrintWriter
  4. An Datei in Java anhängen mit FileOutputStream

Wenn Sie an Textdaten arbeiten und die Anzahl der Schreibvorgänge gering ist, verwenden Sie FileWriter und verwenden Sie seinen Konstruktor mit dem Anfügeflag-Wert true. Wenn die Anzahl der Schreibvorgänge groß ist, sollten Sie den BufferedWriter verwenden. Um binäre oder Rohdatenströme an eine vorhandene Datei anzuhängen, sollten Sie FileOutputStream verwenden.

Java an Datei anhängen mit FileWriter

Hier ist das kurze Programm, um in Java eine Datei mit FileWriter anzuhängen. Später werden wir uns ein vollständiges Beispielprogramm zum Anhängen von Dateien in Java ansehen.

File file = new File("append.txt");
FileWriter fr = new FileWriter(file, true);
fr.write("data");
fr.close();

Java Inhalt an vorhandene Datei anhängen mit BufferedWriter

File file = new File("append.txt");
FileWriter fr = new FileWriter(file, true);
BufferedWriter br = new BufferedWriter(fr);
br.write("data");

br.close();
fr.close();

Text an Datei in Java anhängen mit PrintWriter

Wir können auch PrintWriter verwenden, um in Java an eine Datei anzuhängen.

File file = new File("append.txt");
FileWriter fr = new FileWriter(file, true);
BufferedWriter br = new BufferedWriter(fr);
PrintWriter pr = new PrintWriter(br);
pr.println("data");
pr.close();
br.close();
fr.close();

In Java an Datei anhängen mit FileOutputStream

Sie sollten FileOutputStream verwenden, um Daten an eine Datei anzuhängen, wenn es sich um Rohdaten, Binärdaten, Bilder, Videos usw. handelt.

OutputStream os = new FileOutputStream(new File("append.txt"), true);
os.write("data".getBytes(), 0, "data".length());
os.close();

Java Beispiel zum Anhängen an eine Datei

Hier ist das endgültige Java-Programm zum Anhängen an eine Datei, das alle oben diskutierten verschiedenen Optionen zeigt.

package com.journaldev.files;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;

public class JavaAppendToFile {

	/**
	 * Java append to file example
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		String filePath = "/Users/pankaj/Downloads/append.txt";

		String appendText = "This String will be appended to the file, Byte=0x0A 0xFF";

		appendUsingFileWriter(filePath, appendText);

		appendUsingBufferedWriter(filePath, appendText, 2);

		appendUsingPrintWriter(filePath, appendText);

		appendUsingFileOutputStream(filePath, appendText);
	}

	private static void appendUsingPrintWriter(String filePath, String text) {
		File file = new File(filePath);
		FileWriter fr = null;
		BufferedWriter br = null;
		PrintWriter pr = null;
		try {
			// Um an eine Datei anzuhängen, müssen Sie FileWriter mit dem untenstehenden Konstruktor initialisieren
			fr = new FileWriter(file, true);
			br = new BufferedWriter(fr);
			pr = new PrintWriter(br);
			pr.println(text);
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				pr.close();
				br.close();
				fr.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

	/**
	 * Use Stream for java append to file when you are dealing with raw data, binary
	 * data
	 * 
	 * @param data
	 */
	private static void appendUsingFileOutputStream(String fileName, String data) {
		OutputStream os = null;
		try {
			// Das folgende true-Flag teilt dem OutputStream mit, dass angehängt werden soll
			os = new FileOutputStream(new File(fileName), true);
			os.write(data.getBytes(), 0, data.length());
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				os.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

	/**
	 * Use BufferedWriter when number of write operations are more
	 * 
	 * @param filePath
	 * @param text
	 * @param noOfLines
	 */
	private static void appendUsingBufferedWriter(String filePath, String text, int noOfLines) {
		File file = new File(filePath);
		FileWriter fr = null;
		BufferedWriter br = null;
		try {
			// Um an eine Datei anzuhängen, müssen Sie FileWriter mit dem untenstehenden Konstruktor initialisieren
			fr = new FileWriter(file, true);
			br = new BufferedWriter(fr);
			for (int i = 0; i < noOfLines; i++) {
				br.newLine();
				// Sie können die Methode write oder append verwenden
				br.write(text);
			}

		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				br.close();
				fr.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

	/**
	 * Use FileWriter when number of write operations are less
	 * 
	 * @param filePath
	 * @param text
	 * @param noOfLines
	 */
	private static void appendUsingFileWriter(String filePath, String text) {
		File file = new File(filePath);
		FileWriter fr = null;
		try {
			// Das folgende Konstruktorargument entscheidet, ob angehängt oder überschrieben werden soll
			fr = new FileWriter(file, true);
			fr.write(text);

		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				fr.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

}

Das ist alles für das Anhängen an eine Datei im Java-Programm.

Sie können weitere Java-IO-Beispiele aus unserem GitHub-Repository überprüfen.

Referenzen:

Source:
https://www.digitalocean.com/community/tutorials/java-append-to-file