В этой статье мы рассмотрим различные способы записи текстовой и бинарной информации в файл, используя стандартные 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 и не требуют подключения дополнительных библиотек.