Дозапись текста в файл в Java — FileWriter с append=true
Программа на Java для добавления текста в конец существующего файла.
Для понимания этого примера нужно знать следующие темы Java:
Класс
java.io.FileОбработка исключений в Java
Перед тем как добавлять текст в файл, предположим, что у нас в папке src есть файл test.txt.
Содержимое test.txt:
This is a
Test file.
Пример 1: добавление текста в существующий файл
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
public class AppendFile {
public static void main(String[] args) {
String path = System.getProperty("user.dir") + "\\src\\test.txt";
String text = "Added text";
try {
Files.write(Paths.get(path), text.getBytes(), StandardOpenOption.APPEND);
} catch (IOException e) {
}
}
}
Когда мы запустим программу, файл test.txt будет содержать:
This is a
Test file.Added text
В этой программе мы используем свойство user.dir класса System, чтобы получить текущий каталог, который хранится в переменной path.
Текст, который нужно добавить, хранится в переменной text. Затем в блоке try-catch мы используем метод write(), чтобы добавить текст в существующий файл.
Метод write() принимает путь к файлу, текст для записи и режим открытия файла для записи. В нашем случае мы использовали опцию APPEND.
Поскольку метод write() может выбросить IOException, мы используем блок try-catch для корректной обработки исключения.
Пример 2: добавление текста в файл через FileWriter
import java.io.FileWriter;
import java.io.IOException;
public class AppendFile {
public static void main(String[] args) {
String path = System.getProperty("user.dir") + "\\src\\test.txt";
String text = "Added text";
try {
FileWriter fw = new FileWriter(path, true);
fw.write(text);
fw.close();
}
catch(IOException e) {
}
}
}
Вывод программы такой же, как в примере 1.
В этой программе, вместо метода write(), мы используем экземпляр (объект) FileWriter для добавления текста в существующий файл.
При создании объекта FileWriter мы передаём путь к файлу и true в качестве второго параметра. true означает, что файл открыт для дозаписи.
Затем мы используем метод write() для дозаписи указанного текста и закрываем filewriter.