网站首页> 文章专栏> JavaIO:解决递归目录文件的阻塞问题
JavaIO:解决递归目录文件的阻塞问题
路人王 天津 2020-05-03 68 0 0

开启子线程解决

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);
	}

}

java  

评论

评论  分享  打赏