import java.io.*;//导入IO包中的所有类;
public class TestListFiles{
public static void main(String[]args)throws Exception{
showFiles("d:/");
}
public static void showFiles(String path)throws Exception{
File f=new File(path); //1.提供路径构造File类;
if(!f.exists()||!f.isDirectory())return;//如果是文件或不存在则直接返回。
File[]listFiles=f.listFiles(); //2.得到指定路径下的文件数组;
for(int i=0;i<listFiles.length;i++){
if(listFiles[i].isFile()){
//如果是文件,则显示文件信息;
System.out.println(listFiles[i].getName()+"\t"+listFiles[i].length());
}
else{//是目录,则先显示目录名,再次递归调用listFiles;
System.out.println("["+listFiles[i].getName()+"]");
showFiles(listFiles[i].getPath());
}
}
}
}
Exception in thread "main" java.lang.NullPointerException
at TestListFiles.showFiles(TestListFiles.java:17)
at TestListFiles.showFiles(TestListFiles.java:24)
at TestListFiles.main(TestListFiles.java:11)
------解决方案--------------------
File[] listFiles = f.listFiles(); 加上对listFiles的null判断,不然for循环会报错。
------解决方案--------------------
listFiles[i]的值是null所以有这个异常。按楼上说的做
------解决方案--------------------
listFiles[i] 这个出现 null了