Содержание
Java 9 уже в полном разгаре и готова к завершению к концу мая. Хотя Java 8 была выпущена пару лет назад, я уверен, что очень немногие компании перешли на Java 8 JDK для своей производственной среды. Мало кто все еще использует JDK7 и JDK6.
Java 8 по умолчанию поставляется с множеством интеллектуальных функций, которые, я думаю, мы почти не рассматривали. Некоторое время назад я написал статью об операциях API Java 8 Stream и лямбда-выражении .
В этом уроке мы рассмотрим шаги и то, как мы можем использовать пакет Java 8 Stream для построчного чтения содержимого файла. Если вы хотите перейти traditional approach (до Java 8), затем следуйте этому руководству, которое использует FileReader а также BufferReader Utils.
Кроме того, если у вас есть вопросы ниже, то вы находитесь в правильном месте.
- Java 8 Stream of Lines — чтение файла построчно
- Java 8 API Stream на примере
- Как читать из файлов с помощью Files.lines (…) и forEach
- Java 8: чтение файла в строку
- Java 8 записи потока в файл
Давайте начнем:
Шаг 1
Создать класс CrunchifyJava8StreamReadFile.java
Шаг 2
Мы собираемся создать утилиту чтения строки, используя два подхода ниже. Создайте разные методы для каждой утилиты.
lines()а такжеStreamПодходnewBufferedReaderа такжеStreamПодход
Шаг 3
collect выполняет mutable reduction operation на элементах этого потока, используя Collector , Вот подробности. Я бы предложил тщательно пройти через это.
Шаг 4
Мы будем читать файл crunchify-java8-stream.txt с содержанием ниже. Скопируйте содержимое и поместите его на диск C или в папку « Загрузки» Mac .
|
1
2
3
4
5
|
Добро пожаловать в Crunchify 's JDK 8 Поток API учебник
Более чем 500 Ява и Spring MVC учебники
Компания : Crunchify
Адрес : Нью — Йорк
Контакт : App Shah
|
Вот полная Java-программа:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
пакет ком . crunchify. учебные пособия ;
импорт Java . Ио. BufferedReader ;
импорт Java . Ио. IOException ;
импорт Java . Nio . файл. Файлы ;
импорт Java . Nio . файл. Дорожки ;
импорт Java . Util. ArrayList ;
импорт Java . Util. Список ;
импорт Java . Util. поток. Коллекционеры ;
импорт Java . Util. поток. Стрим ;
/ **
* @author Crunchify.com
*
* /
общественности учебный класс CrunchifyJava8StreamReadFile {
общественности статический недействительным главная ( Строка args [ ] ) {
строка crunchifyFile знак равно /Users/
// lines () и потоковый подход
CrunchifyReadFile1 ( crunchifyFile ) ;
// newBufferedReader и потоковый подход
CrunchifyReadFile2 ( crunchifyFile ) ;
}
// Чтение файла с использованием lines () и Stream Approach
частный статический недействительным CrunchifyReadFile1 ( String crunchifyFile ) {
Поток < String > crunchifyStream знак равно ноль ;
пытаться {
// Чтение всех строк из файла в виде потока. Байты из файла декодируются в символы с использованием кодировки UTF-8
crunchifyStream знак равно Файлы. линии ( Paths . get ( crunchifyFile ) ) ;
} ловить ( IOException е ) {
эл . printStackTrace ( ) ;
}
log ( ============= Результат из строк () и Stream Approach ============= ) ;
crunchifyStream . Foreach (система из:: Println.);
}
// Чтение файла с использованием newBufferedReader и Stream Approach
частный статический недействительным CrunchifyReadFile2 ( String crunchifyFile ) {
Список < String > crunchifyList знак равно новый ArrayList < > ( ) ;
BufferedReader crunchifyBufferReader знак равно ноль ;
пытаться {
// newBufferedReader открывает файл для чтения
crunchifyBufferReader знак равно Файлы. newBufferedReader ( Paths . get ( crunchifyFile ) ) ;
} ловить ( IOException е ) {
эл . printStackTrace ( ) ;
}
// toList: возвращает Collector, который накапливает входные элементы в новый список
// lines (): возвращает поток, элементами которого являются строки, считанные из этого BufferedReader
crunchifyList знак равно crunchifyBufferReader . линии ( ) . собирать ( Collectors . toList ( ) ) ;
log ( / n ============= Результат от newBufferedReader и Stream Approach ============= ) ;
// forEach: выполняет данное действие для каждого элемента Iterable, пока все элементы не будут обработаны или
// действие генерирует исключение.
crunchifyList . Foreach (система из:: Println.);
}
частный статический недействительным log ( Строка строка ) {
Система. вне. println ( строка ) ;
}
}
|
Результат / выход:
0.00 (0%) 0 votes










