开启子线程解决
package com.wang.aliyun.file;
import java.io.File;
/**
* @author 王一宁
* @date 2020年5月3日
* 递归列出所有的目录以及文件
* 问题:主线程会暂时阻塞,一只读取文件完成后才会向下执行
* 解决办法:主线程开启子线程去读取目录
*/
public class ListFiles {
public static void main(String[] args) {
// 开启子线程
new Thread(() -> {
File file = new File("d:"+ File.separator);
// 但是主线程会暂时阻塞,一只读取文件完成后才会向下执行
listDir(file);
}) .start();
System.out.println("两两不耽搁!");
}
/**
* 列出所有目录的实现方法
* @param file
*/
public static void listDir(File file) {
// 如果是目录
if(file.isDirectory()) {
File result[] = file.listFiles();
if(result != null) {
for(int x = 0;x <result.length; x++) {
listDir(result[x]);
}
}
}
System.out.println(file);
}
}
评论