Java遍历目录文件,一个while循环即可
直奔主题,看代码实现
public static void main(String[] args) {
File dir = new File("/home/user"); //需要遍历的系统目录
if( !dir.exists() ) return; //目录不存在
Queue<File> cache = new LinkedList<>(); //创建临时队列 - 保存需要处理的目录
cache.offer(dir);
while( (dir = cache.poll() ) != null) {
File[] files = dir.listFiles();
for( File file : files ) {
if( file.isFile() ) {
System.out.println("文件:" + file.getAbsolutePath());
//TODO 业务逻辑
} else {
System.out.println("目录: " + file.getAbsolutePath());
//TODO 业务逻辑
cache.offer(file); //放入对列中,等待处理
}
}
}
}
相比递归,有以下优点:
- 占用内存少
- 目录级别再多也没问题
- 局部变量的引用能及时释放
记的『关注』我哦!