Научитесь добавлять данные в файл в 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);}