本文中为大家介绍使用java8 Stream API逐行读取文件,以及根据某些条件过滤文件内容
1. Java 8逐行读取文件
在此示例中,我将按行读取文件内容并在控制台打印输出。
Path filePath = Paths.get("c:/temp", "data.txt");
//try-with-resources语法,不用手动的编码关闭流
try (Stream<String> 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<String> lines = Files.lines(filePath)){
List<String> 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();
}
欢迎关注我的博客,里面有很多精品合集
- 本文转载注明出处(必须带连接,不能只转文字):字母哥博客。
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦