Дозапись текста в файл в 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.