栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Java 8,打印文件中所有行的最优选,最简洁的方法是什么?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Java 8,打印文件中所有行的最优选,最简洁的方法是什么?

这会在try围栏中使用带有lambda的新Stream。

我想说这是最可取的和简洁的方法,因为:

1)完成后,它将自动关闭流并正确引发任何异常。

2)这是懒惰的输出。在处理最后一行之后读取每一行。这也更接近原始的基于Java流的文件处理规范。

3)以最类似于文件中数据的方式打印每一行。

4)这会减少内存占用,因为它不会创建中间列表或数组,例如Files.readAllLines(…)

5)这是最灵活的,因为提供的Stream对象具有许多其他用途和功能来处理数据(转换,集合,谓词等)。

 try (Stream<String> stream = Files.lines(Paths.get("sample.txt"),Charset.defaultCharset())) { stream.forEach(System.out::println); }

如果提供了路径和字符集,并且使用者可以使用任何对象,那么它也可以工作:

 try (Stream stream = Files.lines(path,charset)) { stream.forEach(System.out::println); }

错误处理:

 try (Stream<String> stream = Files.lines(Paths.get("sample.txt"),Charset.defaultCharset())) { stream.forEach(System.out::println); } catch (IOException ex) {        // do something with exception }


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/498011.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号