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

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

1. Использование файлов NIO

С классом Files мы можем записать файл, используя его функцию write(). Внутри себя функция write() использует OutputStream для записи массива байтов в файл.

Чтобы добавить содержимое в существующий файл, используйте StandardOpenOption.APPEND при записи содержимого.

String textToAppend = "";Path path = Paths.get("c:/temp/samplefile.txt");Files.write(path, textToAppend.getBytes(), StandardOpenOption.APPEND); 

2. Использование BufferedWriter

BufferedWriter буферизует данные во внутреннем массиве байтов перед записью в файл, что приводит к уменьшению количества операций ввода-вывода и повышению производительности.

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

String textToAppend = "";Strinng filePath = "c:/temp/samplefile.txt";try(FileWriter fw = new FileWriter(filePath, true);BufferedWriter writer = new BufferedWriter(fw);) {writer.write(textToAppend);} 

3. Использование PrintWriter

Мы можем использовать PrintWriter для записи форматированного текста в файл. PrintWriter реализует все методы print(), найденные в PrintStream, поэтому мы можем использовать все форматы, которые вы используете с операторами System.out.println().

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

String textToAppend = "";String fileName = "c:/temp/samplefile.txt";try(FileWriter fileWriter = new FileWriter(fileName, true);PrintWriter printWriter = new PrintWriter(fileWriter);) {printWriter.println(textToAppend);}

4. Использование FileOutputStream

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

Чтобы добавить содержимое к существующему файлу, откройте FileOutputStream в режиме добавления, передав второй аргумент как true.

String textToAppend = "\r\n ";String fileName = "c:/temp/samplefile.txt";try(FileOutputStream outputStream= new FileOutputStream(fileName, true)) {byte[] strToBytes = textToAppend.getBytes();outputStream.write(strToBytes);}

Исходный код на Github

Прокрутить вверх