В этой статье мы рассмотрим различные способы записи текстовой и бинарной информации в файл, используя стандартные API Java.

Запись текста в файл (Java 7 и выше)

Первый способ годится, если вы используете Java 7 и выше. Здесь используется класс Paths, который был добавлен в Java 7. Данный код перезапишет информацию в файле, если тот уже существует.

// запись в файл текстовой информации (файл перезаписывается)
List<String> lines = Arrays.asList("Привет", "Мир");
Path file = Paths.get("output.txt");
Files.write(file, lines, StandardCharsets.UTF_8);

Если же вам нужно добавить текст в конец файла, укажите дополнительную опцию StandardOpenOption.APPEND:

// запись в файл текстовой информации (информация добавляется в конец файла)
List<String> lines2 = Arrays.asList("Привет", "Мир");
Path file2 = Paths.get("output.txt");
Files.write(file2, lines, StandardCharsets.UTF_8, StandardOpenOption.APPEND);

Запись бинарной информации в файл

Если вам требуется записать не текстовые данные, а бинарные данные, используйте следующий пример. В качестве бинарных данных может выступать любой массив байтов (например, байтовое представление картинки или любого другого файла).

// запись в файл бинарной информации (файл перезаписывается)
byte[] data = "Бинарные данные".getBytes();
Path fileB = Paths.get("output.bin");
Files.write(fileB, data);

Для того, чтобы добавить информацию в конец файла, не перезаписывая его полностью, ипользуйте этот код:

// запись в файл бинарной информации (информация добавляется в конец файла)
byte[] data2 = "Бинарные данные".getBytes();
Path fileB2 = Paths.get("output.bin");
Files.write(fileB2, data, StandardOpenOption.APPEND);

Если же вы используете Java 6 ниже, воспользуйтесь следующими примерами.

Запись текста в файл (Java 6)

Этот код запишет данные в файл (причём если файл существует, данные в нём будут перезаписаны).

// если файл существует, он перезатрётся
PrintWriter writer = new PrintWriter("output.txt", "UTF-8");
writer.println("Первая строка");
writer.println("Вторая строка");
writer.close();

Если вам нужно дописать текст в конец файла, используйте следующий код:

// здесь мы допишем информацию в конец файла, если он уже существует
PrintWriter writer2 = new PrintWriter((new FileWriter("output.txt", true)));
writer2.println("Третья строка");
writer2.close();

Для записи бинарных данных в файл в Java 6 используйте следующий код (информация в файле перезапишется):

// запись в файл бинарной информации (файл перезаписывается)
OutputStream os = new FileOutputStream("output.bin");
byte[] data = "какие-то бинарные данные".getBytes();
os.write(data);
os.close();

Для добавления бинарных в конец файла в Java используйте следующий код:

// запись в файл бинарной информации (информация добавляется в конец файла)
OutputStream osB = new FileOutputStream("output.bin", true);
byte[] dataB = "какие-то бинарные данные".getBytes();
osB.write(dataB);
osB.close();

Резюме

В этой статье мы рассмотрели различные способы записи в файл текстовой и бинарной информации. Данные примеры используют стандартные возможности Java и не требуют подключения дополнительных библиотек.

Как записать данные в файл