本套JAVA8教程由于是有英文翻譯過來的,如果有翻譯不對的地方還請多多包涵。
本節(jié)課先簡單的介紹下Java8有哪些新特性,對于Java6/7版本做出哪些更改.那廢話不多說,趕緊開始今天的課程吧.
在Java 8中,您可以使用Files.lines將文件讀取為Stream。
比如硬盤中一個a.txt文件
line1
line2
line3
line4
line5
Java 8 Read File + Stream
public static void main(String args[]) {
String fileName = "c://a.txt";
//read file into stream, try-with-resources
try (Stream<String> stream = Files.lines(Paths.get(fileName))) {
stream.forEach(System.out::println);
} catch (IOException e) {
e.printStackTrace();
}
}
輸出
line1
line2
line3
line4
line5
Java 8 Read File + Stream + Extra
此示例顯示如何使用Stream過濾內(nèi)容,將整個內(nèi)容轉(zhuǎn)換為大寫并將其作為List返回。
public static void main(String args[]) {
String fileName = "c://.txt";
List<String> list = new ArrayList<>();
try (Stream<String> 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
BufferedReader + Stream
自1.8以來添加了一個新方法lines(),它允許BufferedReader將內(nèi)容返回為Stream。
public static void main(String args[]) {
String fileName = "c://.txt";
List<String> list = 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);
}
輸出
line1
line2
line3
line4
line5
以上就是java8中對file的操作, 相對來講簡單了很多. 趕緊動手敲敲吧.
歡迎留言討論