Как записать текст в файл
Короткий ответ
Files.writeString() создаёт файл или перезаписывает существующий:
void main() throws IOException {
Path file = Path.of("hello.txt");
Files.writeString(file, "Hello, file!\n");
IO.print(Files.readString(file));
}Результат:
Hello, file!Список строк
Files.write() записывает каждую строку списка с переводом строки:
void main() throws IOException {
var lines = List.of("apples", "pears", "plums");
Files.write(Path.of("fruits.txt"), lines);
IO.println(Files.readAllLines(Path.of("fruits.txt")));
}Результат:
[apples, pears, plums]Много записей
Для записи в цикле используйте BufferedWriter — он копит данные и пишет их на диск крупными порциями:
void main() throws IOException {
Path file = Path.of("squares.txt");
try (BufferedWriter writer = Files.newBufferedWriter(file)) {
for (int i = 1; i <= 3; i++) {
writer.write(i + " * " + i + " = " + i * i);
writer.newLine();
}
}
IO.print(Files.readString(file));
}Результат:
1 * 1 = 1
2 * 2 = 4
3 * 3 = 9Частая ошибка
Писать в папку, которой нет. Java не создаёт папки сама:
void main() throws IOException {
Files.writeString(Path.of("reports/2026/march.txt"), "data");
}Результат:
Exception in thread "main" java.nio.file.NoSuchFileException: reports\2026\march.txtСначала создайте папки: Files.createDirectories(file.getParent()).
Функции из этого ответа
- Files.writeString() — Записывает строку в файл: создаёт его или перезаписывает.