РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
803 of 1163 menu

Метод lines

Метод lines класса Files читает все строки из указанного файла и возвращает их в виде потока Stream<String>. Первым параметром метод принимает путь к файлу в виде объекта Path, вторым параметром можно передать кодировку Charset. Если кодировка не указана, используется UTF-8. Метод удобен тем, что позволяет обрабатывать строки файла последовательно, не загружая весь файл в память целиком, что особенно важно при работе с большими файлами.

Синтаксис

Files.lines(path, [charset])

Пример

Давайте создадим файл, запишем в него несколько строк и прочитаем их с помощью метода lines:

import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.List; import java.util.stream.Stream; public class Main { public static void main(String[] args) throws IOException { Path path = Files.createTempFile("test", ".txt"); Files.write(path, List.of("abcde", "12345", "hello")); try (Stream<String> stream = Files.lines(path)) { stream.forEach(System.out::println); } } }

Результат выполнения кода:

"abcde" "12345" "hello"

Пример

Давайте соберем все строки файла в список с помощью метода collect:

import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; public class Main { public static void main(String[] args) throws IOException { Path path = Files.createTempFile("test", ".txt"); Files.write(path, List.of("abcde", "12345", "hello")); try (Stream<String> stream = Files.lines(path)) { List<String> res = stream.collect(Collectors.toList()); System.out.println(res); } } }

Результат выполнения кода:

[abcde, 12345, hello]

Пример

Давайте подсчитаем количество строк в файле:

import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.List; import java.util.stream.Stream; public class Main { public static void main(String[] args) throws IOException { Path path = Files.createTempFile("test", ".txt"); Files.write(path, List.of("abcde", "12345", "hello")); try (Stream<String> stream = Files.lines(path)) { long res = stream.count(); System.out.println(res); } } }

Результат выполнения кода:

3

Смотрите также

  • метод readAllLines,
    который читает все строки файла в список
  • метод readString,
    который читает все содержимое файла в строку
  • метод newBufferedReader,
    который открывает файл для построчного чтения
  • метод write,
    который записывает строки в файл
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить