真的简单,文本文件逐行处理–用java8 Stream流的方式
2023-02-18 15:36:57 时间
本文中为大家介绍使用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();
}
欢迎关注我的博客,里面有很多精品合集
- 本文转载注明出处(必须带连接,不能只转文字):字母哥博客。
觉得对您有帮助的话,帮我点赞、分享!您的支持是我不竭的创作动力! 。另外,笔者最近一段时间输出了如下的精品内容,期待您的关注。
相关文章
- Jmeter扩展组件开发(7) - 自定义java请求的开发
- c字符串详细解析
- 断网了怎么办?那就快去体验【Microsoft Edge浏览器】提供的离线冲浪小游戏~娱乐一下
- 大一学生课设c——服装管理系统
- 1篇文章教会你MarkDown语法,从此开始博客之路
- 蓝桥杯每日一刷(第一天)
- 蓝桥杯每日一刷(第二天)
- 蓝桥杯每日一刷(第三天)
- 二叉树的三种遍历方式
- CONCATENATEX函数的不归路
- 搜索算法dfs和bfs解析(附有例题)
- 蓝桥杯每日一刷(第四天2016)
- 听说你还不会滑动窗口?来一篇文章带你学会滑动窗口算法
- Microsoft VS Code安装教程
- 肝一个周整理Java中容易混淆的基础知识
- ASICS的报表有哪些值得学习的地方?
- 蓝桥杯每日一刷(第六天)——暂会哈希
- 旅行商问题近似解——NP完全问题
- 【DHCP实验】使用三层交换机配置DHCP Server服务器(基于全局地址池配置)
- 前端和后端到底有什么区别?——第100篇文章(送给迷茫的你)