Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

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

Короткий ответ

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() — Записывает строку в файл: создаёт его или перезаписывает.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.