Добавление Java в файл

Сегодня мы рассмотрим, как добавить данные в файл в Java. Добавление в файл в Java – это распространенная операция ввода-вывода Java. Например, каждый раз, когда мы что-то выводим в журнал сервера, это добавляется к существующему файлу.

Добавление в файл в Java

Мы можем добавлять в файл в Java, используя следующие классы.

  1. Добавление в файл в Java с использованием FileWriter
  2. Добавление содержимого в существующий файл в Java с использованием BufferedWriter
  3. Добавление текста в файл в Java с использованием PrintWriter
  4. Добавление в файл в Java с использованием FileOutputStream

Если вы работаете с текстовыми данными и количество операций записи невелико, используйте FileWriter и используйте его конструктор с флагом добавления со значением true. Если количество операций записи большое, следует использовать BufferedWriter. Для добавления двоичных или потоковых данных в существующий файл следует использовать FileOutputStream.

Добавление в файл в Java с использованием FileWriter

Вот небольшая программа на Java для добавления в файл с использованием FileWriter. Позже мы рассмотрим полный пример программы на Java для добавления в файл.

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

Добавление содержимого в существующий файл на Java с использованием 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();

Добавление текста в файл на Java с использованием PrintWriter

Мы также можем использовать PrintWriter для добавления в файл на Java.

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

Добавление в файл на Java с использованием FileOutputStream

При работе с сырыми данными, бинарными данными, изображениями, видео и т. д. следует использовать FileOutputStream для добавления данных в файл.

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

Пример добавления в файл на Java

Вот окончательная программа на Java для добавления в файл, показывающая все различные варианты, о которых мы обсуждали выше.

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 {
			// для добавления в файл необходимо инициализировать FileWriter с использованием нижеприведенного конструктора
			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 {
			// нижеприведенный флаг true указывает OutputStream на добавление
			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 {
			// для добавления в файл необходимо инициализировать FileWriter с использованием нижеприведенного конструктора
			fr = new FileWriter(file, true);
			br = new BufferedWriter(fr);
			for (int i = 0; i < noOfLines; i++) {
				br.newLine();
				// можно использовать метод write или append
				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 {
			// Аргумент конструктора ниже определяет, следует ли добавлять или перезаписывать
			fr = new FileWriter(file, true);
			fr.write(text);

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

}

Это все для программы добавления в файл на Java.

Вы можете проверить больше примеров Java IO в нашем репозитории на GitHub.

Ссылки:

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