Encodera

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

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

Справочник Java

Files.lines()

Читает файл лениво — как поток строк, не загружая его в память целиком.

Доступно с: Java 8

Синтаксис

static Stream<String> lines(Path path) throws IOException

Параметры

ПараметрТипОписание
pathPathПуть к файлу.

Возвращаемое значение

Stream<String>Поток строк; его нужно закрыть.

Примеры

Подсчёт строк с ошибками в логе; try с ресурсами закрывает файл:

void main() throws IOException {
    Path log = Path.of("app.log");
    Files.writeString(log, "INFO start\nERROR disk\nINFO ok\nERROR net\n");
 
    try (Stream<String> lines = Files.lines(log)) {
        long errors = lines.filter(line -> line.startsWith("ERROR")).count();
        IO.println(errors);
    }
    Files.delete(log);
}

Результат:

2

Примечания

Поток держит файл открытым, поэтому его объявляют в try (...). Без закрытия файл может остаться заблокированным (особенно в Windows), и Files.delete() не сработает.

См. также

  • Files.readAllLines() — Читает текстовый файл в список строк.
  • BufferedReader — Читает текст построчно с буферизацией — классический способ обработки больших файлов.
  • try / catch / finally — Перехватывает исключения; finally выполняется всегда, а try с ресурсами сам их закрывает.

Вопросы и ответы по теме

В учебнике

  • Чтение и запись файлов — Чтение и запись текстовых файлов в Java — Files.writeString, readString, readAllLines, write, дозапись в конец, Files.lines и буферизованные потоки.

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

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