Сегодня мы рассмотрим, как добавить данные в файл в Java. Добавление в файл в Java – это распространенная операция ввода-вывода Java. Например, каждый раз, когда мы что-то выводим в журнал сервера, это добавляется к существующему файлу.
Добавление в файл в Java
Мы можем добавлять в файл в Java, используя следующие классы.
- Добавление в файл в Java с использованием
FileWriter
- Добавление содержимого в существующий файл в Java с использованием
BufferedWriter
- Добавление текста в файл в Java с использованием
PrintWriter
- Добавление в файл в 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