В Java 8 вы можете использовать Files.lines
для чтения файла как Поток
.
line1 line2 line3 line4 line5
1. Java 8 Чтение Файла + Поток
package com.mkyong.java8; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.util.stream.Stream; public class TestReadFile { public static void main(String args[]) { String fileName = "c://lines.txt"; //read file into stream, try-with-resources try (Streamstream = Files.lines(Paths.get(fileName))) { stream.forEach(System.out::println); } catch (IOException e) { e.printStackTrace(); } } }
Выход
line1 line2 line3 line4 line5
2. Java 8 Чтение Файла + Поток + Дополнительный
В этом примере показано, как использовать Поток
для фильтрации содержимого, преобразования всего содержимого в верхний регистр и возврата его в виде Списка
.
package com.mkyong.java8; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; public class TestReadFile2 { public static void main(String args[]) { String fileName = "c://lines.txt"; Listlist = new ArrayList<>(); try (Stream stream = Files.lines(Paths.get(fileName))) { //1. filter line 3 //2. convert all content to upper case //3. convert it into a List list = stream .filter(line -> !line.startsWith("line3")) .map(String::toUpperCase) .collect(Collectors.toList()); } catch (IOException e) { e.printStackTrace(); } list.forEach(System.out::println); } }
Выход
LINE1 LINE2 LINE4 LINE5
3. БуферизоВанный читатель + поток
BufferedReader + Поток Новый метод lines()
был добавлен с версии 1.8, он позволяет BufferedReader
возвращать содержимое в виде Потока
.
package com.mkyong.java8; import java.io.BufferedReader; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; public class TestReadFile3{ public static void main(String args[]) { String fileName = "c://lines.txt"; Listlist = new ArrayList<>(); try (BufferedReader br = Files.newBufferedReader(Paths.get(fileName))) { //br returns as stream and convert it into a List list = br.lines().collect(Collectors.toList()); } catch (IOException e) { e.printStackTrace(); } list.forEach(System.out::println); } }
BufferedReader + Поток Новый метод || lines() || был добавлен с версии 1.8, он позволяет ||BufferedReader || возвращать содержимое в виде ||Потока ||. Выход
line1 line2 line3 line4 line5
4. BufferedReader + Поток Новый метод || lines() || был добавлен с версии 1.8, он позволяет ||BufferedReader || возвращать содержимое в виде ||Потока ||. Вывод Классического буферизованного Считывателя И Сканера
BufferedReader + Поток Новый метод lines()
был добавлен с версии 1.8, он позволяет BufferedReader
возвращать содержимое в виде Потока
. Выведите Классический буферизованный читатель И сканер Достаточно Java 8 и Поток
, давайте вернемся к классическому
BufferedReader + Поток Новый метод lines()
был добавлен с версии 1.8, он позволяет
package com.mkyong.core; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class TestReadFile4{ public static void main(String args[]) { String fileName = "c://lines.txt"; try (BufferedReader br = new BufferedReader(new FileReader(fileName))) { String line; while ((line = br.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } } }
BufferedReader + Поток Новый метод lines()
был добавлен с версии 1.8, он позволяет
package com.mkyong.core; import java.io.File; import java.io.IOException; import java.util.Scanner; public class TestReadFile5 { public static void main(String args[]) { String fileName = "c://lines.txt"; try (Scanner scanner = new Scanner(new File(fileName))) { while (scanner.hasNext()){ System.out.println(scanner.nextLine()); } } catch (IOException e) { e.printStackTrace(); } } }
BufferedReader + Поток Новый метод || lines() || был добавлен с версии 1.8, он позволяет ||BufferedReader || возвращать содержимое в виде ||Потока ||. Вывод Классического буферизованного считывателя и сканера Достаточно Java 8 и ||Stream||, давайте вернемся к классическим примерам ||буферизованного считывателя || (JDK1.1) и ||Сканера|| (JDK1.5) для чтения файла строка за строкой, он все еще работает, просто разработчик 4.1||БуферизоВанный считыватель ||+ пример с использованием ресурсов. s – это ссылки на движение 4.2||Сканер||+ пример использования ресурсов. нг в направлении ||Потока||.
Оригинал: “https://mkyong.com/java8/java-8-stream-read-a-file-line-by-line/”