java 根据条件从list中筛选出符合条件的集合_Java 8 列出目录中的所有文件

统豺虎,御边幅,号令明,军威肃。

7a0a9511b9a15bb02cc257e9e86be38b.png

概述

学习将Java 8 API与Files.list()和DirectoryStream一起使用,以递归方式列出目录中存在的所有文件,包括隐藏文件。

使用Files.list()列出所有文件和子目录

Files.list()方法列出当前目录中的所有文件名和子目录。

Files.list(Paths.get(".")) .forEach(System.out::println); Output:.filename1.txt.directory1.filename2.txt.Employee.java

使用过滤器表达式仅列出目录内的文件

如果需要,可以使用筛选器筛选出子目录并只打印文件名。

Files.list(Paths.get(".")) .filter(Files::isRegularFile) .forEach(System.out::println); Output:.filename1.txt.filename2.txt.Employee.java

要列出另一个目录中的文件,我们可以将“.”替换为所需目录的完整路径。

使用Files.newDirectoryStream()列出文件和子目录

Java提供了一种更灵活的方法来使用Files.newDirectoryStream()遍历目录内容。

请注意,如果我们使用的是大目录,那么使用DirectoryStream实际上会使代码更快。

Files.newDirectoryStream(Paths.get(".")) .forEach(System.out::println); Output:.filename1.txt.directory1.filename2.txt.Employee.java

仅列出具有Files.newDirectoryStream()的文件

仅列出文件并从流中排除所有目录,请使用path filter作为第二个参数。

Files.newDirectoryStream(Paths.get("."), path -> path.toFile().isFile()) .forEach(System.out::println);Output:.filename1.txt.filename2.txt.Employee.java

使用Files.newDirectoryStream()列出某些扩展名的文件

你可以更改在第二个参数中传递的路径筛选器表达式,以仅获取特定扩展名的文件。

Files.newDirectoryStream(Paths.get("."), path -> path.toString().endsWith(".java")) .forEach(System.out::println);Output:.Employee.java

在目录中查找所有隐藏文件

要查找所有隐藏文件,可以在上述任何示例中使用过滤器表达式 file -> file.isHidden()。

或者,可以使用此快捷方式。

final File[] files = new File(".").listFiles(file -> file.isHidden());//orfinal File[] files = new File(".").listFiles(File::isHidden);

在以上示例中,我们学习了使用Java 8 API列表或根据各种搜索条件递归地迭代目录中的文件。

原文链接:Java 8 List All Files In Directory – Six Examples

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值