打印用到了递归算法,代码如下:
import java.io.File;
import java.util.List;
public class TestFile {
public static void main(String[] args) throws NullPointerException {
//打印多级目录
File dir=new File("e:\\fileTest");
printDir(dir);
}
//下面是自定义打印方法;
public static void printDir(File dir){
File[] files = dir.listFiles();//将File转换成List数组;
for (File f:files){
if (f.isDirectory()){//如果f是一个文件夹,则遍历整个文件夹
System.out.println(dir);//打印目录名称
printDir(f);//递归
}else{
System.out.println(f);//如果是一个文件则直接打印
}
}
}
}
运行结果:
注意:
此代码新手极容易报空指针异常NullPointerException,怎么解决呢?
1,在测试类中查看目录名是否正确;
2,在红线处加上下面这句代码即可解决问题
代码:
if(files==null)return;