本套JAVA8教程由于是有英文翻译过来的,如果有翻译不对的地方还请多多包涵。
本节课先简单的介绍下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过滤内容,将整个内容转换为大写并将其作为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将内容返回为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的操作, 相对来讲简单了很多. 赶紧动手敲敲吧.
欢迎留言讨论