java8 Stream流逐行处理文本文件

网友投稿 351 2022-11-30


java8 Stream流逐行处理文本文件

本文中为大家介绍使用java8 Stream API逐行读取文件,以及根据某些条件过滤文件内容

1. Java 8逐行读取文件

在此示例中,我将按行读取文件内容并在控制台打印输出。

Path filePath = Paths.get("c:/temp", "data.txt");

//try-with-resources语法,不用手动的编码关闭流

try (Stream lines = Files.lines( filePath ))

{

lines.forEach(System.out::println);

}

catch (IOException e)

{

e.printStackTrace();//只是测试用例,生产环境下不要这样做异常处理

}

上面的程序输出将在控制台中逐行打印文件的内容。

Never

store

password

except

in mind.

2.Java 8读取文件–过滤行

在此示例中,我们将文件内容读取为Stream。然后,我们将过滤其中包含单词"password"的所有行。

Path filePath = Paths.get("c:/temp", "data.txt");

try (Stream lines = Files.lines(filePath)){

List filteredLines = lines

.filter(s -> s.contains("password"))

.collect(Collectors.toList());

filteredLines.forEach(System.out::println);

} catch (IOException e) {

e.printStackTrace();//只是测试用例,生产环境下不要这样做异常处理

}

程序输出。

password

我们将读取给定文件的内容,并检查是否有任何一行包含"password"然后将其打印出来。

3.Java 7 –使用FileReader读取文件

Java 7之前的版本,我们可以使用FileReader方式进行逐行读取文件。

private static void readLinesUsingFileReader() throws IOException

{

File file = new File("c:/temp/data.txt");

FileReader fr = new FileReader(file);

BufferedReader br = new BufferedReader(fr);

String line;

while((line = br.readLine()) != null)

{

if(line.contains("password")){

System.out.println(line);

}

}

br.close();

fr.close();

}

以上就是java8 Stream流逐行处理文本文件的详细内容,更多关于java8 Stream流处理文件的资料请关注我们其它相关文章!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:浅谈Maven包冲突的原理及解决方法
下一篇:记一次公司JVM堆溢出抽丝剥茧定位的过程解析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~