使用java8 API遍历过滤文件目录及子目录和隐藏文件示例详解
作者:字母哥博客 时间:2023-08-29 02:42:29
1. 使用Files.list()迭代目录及其子目录文件
Files.list()可以迭代目录及其子目录文件
Files.list(Paths.get(".")) //当前目录
.forEach(System.out::println);
输出:
.\filename1.txt
.\directory1
.\filename2.txt
.\Employee.java
2. 使用 filter表达式过滤文件
过滤器函数引用,isRegularFile表示普通文件
Files.list(Paths.get("."))
.filter(Files::isRegularFile) //过滤器:只保留普通文件,过滤掉文件目录
.forEach(System.out::println);
输出结果如下:
.\filename1.txt
.\filename2.txt
.\Employee.java
也可以使用lambda表达式进行过滤
Files.list(Paths.get("."))
.filter(s -> s.startsWith("file")) //过滤器:只保留以file开头的文件及目录
.forEach(System.out::println);
3. 使用 Files.newDirectoryStream()迭代目录及其子目录文件
另一种更灵活的遍历目录的方式Files.newDirectoryStream(),如果我们的目录文件又深又多,DirectoryStream可以使迭代目录的速度更快。
Files.newDirectoryStream(Paths.get("."))
.forEach(System.out::println);
输出结果与Files.list()效果一致
.\filename1.txt
.\directory1
.\filename2.txt
.\Employee.java
4. 使用Files.newDirectoryStream()迭代指定文件后缀名的文件
我们可以为Files.newDirectoryStream()传递第二个参数,指定过滤条件,比如以java(结尾)为后缀名的文件
Files.newDirectoryStream(Paths.get("."),
path -> path.toString().endsWith(".java"))
.forEach(System.out::println);
Output:
.\Employee.java
5. 遍历目录内的隐藏文件
要查找所有隐藏文件,可以在过滤器中使用lambda表达式file -> file.isHidden()。或者,使用java8的方法引用。
final File[] files = new File(".").listFiles(file -> file.isHidden());
//or
final File[] files = new File(".").listFiles(File::isHidden);
来源:https://www.cnblogs.com/zimug/p/13353127.html
标签:java8,API,遍历,文件目录
0
投稿
猜你喜欢
Mybatis SqlSessionFactory与SqlSession详细讲解
2021-12-24 22:42:56
springboot前后台数据交互的示例代码
2023-11-26 21:15:07
java使用TimerTask定时器获取指定网络数据
2022-08-14 10:52:20
教你如何监控 Java 线程池运行状态的操作(必看)
2023-02-09 04:34:13
Java7之forkjoin简介_动力节点Java学院整理
2023-08-31 14:08:28
C++数组指针和二维数组详情
2022-03-31 21:11:07
C# 类的声明详解
2022-10-15 14:08:38
Android开发之绘制平面上的多边形功能分析
2023-12-13 13:31:57
C# winform实现右下角弹出窗口结果的方法
2023-02-05 14:22:57
springboot+mybatis-plus 两种方式打印sql语句的方法
2022-12-29 13:41:11
C# Winform下载文件并显示进度条的实现代码
2022-11-26 04:39:02
Android实现照片墙效果的实例代码
2023-01-20 16:53:37
OpenCV + MFC实现简单人脸识别
2023-02-24 06:15:55
SpringBoot如何进行对象复制的实践
2023-11-23 03:40:19
Android AndBase框架使用封装好的函数完成Http请求(三)
2021-09-15 09:49:56
为Android应用增加渠道信息 自动化不同渠道的打包过程的使用详解
2022-06-01 11:38:22
Java创建树形结构算法实例代码
2021-11-21 22:24:01
Android简单实现弹幕效果
2022-08-12 01:24:08
Java应用程序开发学习之static关键字应用
2021-12-20 13:23:41
C++强制类型转换的四种方式
2023-03-29 04:00:49