Метод lines класса BufferedReader
Метод lines класса BufferedReader читает данные из потока
и возвращает их в виде Stream<String>, где каждый элемент потока -
это одна прочитанная строка. Метод не принимает параметров. Чтение
происходит лениво: строки извлекаются из потока по мере обработки
результирующего Stream. Поток необходимо закрыть, например,
с помощью try-with-resources.
Синтаксис
bufferedReader.lines()
Пример
Давайте прочитаем все строки из StringReader и выведем их в консоль:
import java.io.BufferedReader;
import java.io.StringReader;
public class Main
{
public static void main(String[] args)
{
String text = "abcde\n12345";
try (BufferedReader br = new BufferedReader(new StringReader(text)))
{
br.lines().forEach(System.out::println);
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
}
}
Результат выполнения кода:
"abcde"
"12345"
Пример
Давайте соберем все строки в список с помощью collect:
import java.io.BufferedReader;
import java.io.StringReader;
import java.util.List;
import java.util.stream.Collectors;
public class Main
{
public static void main(String[] args)
{
String text = "abcde\n12345\nabcde";
try (BufferedReader br = new BufferedReader(new StringReader(text)))
{
List<String> res = br.lines().collect(Collectors.toList());
System.out.println(res);
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
}
}
Результат выполнения кода:
[abcde, 12345, abcde]
Пример
Давайте отфильтруем строки, оставив только те, что начинаются
с символа '1', и посчитаем их количество:
import java.io.BufferedReader;
import java.io.StringReader;
public class Main
{
public static void main(String[] args)
{
String text = "abcde\n12345\nabcde";
try (BufferedReader br = new BufferedReader(new StringReader(text)))
{
long res = br.lines()
.filter(line -> line.startsWith("1"))
.count();
System.out.println(res);
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
}
}
Результат выполнения кода:
1
Смотрите также
-
класс
BufferedReader,
который буферизует чтение символов -
метод
readLine,
который читает одну строку -
класс
Reader,
который является базовым для чтения символов -
метод
read,
который читает отдельные символы