黑马程序员技术交流社区
标题:
IO(列出目录下所有内容)空指针是怎么回事
[打印本页]
作者:
杨庆雷
时间:
2014-6-25 16:58
标题:
IO(列出目录下所有内容)空指针是怎么回事
本帖最后由 杨庆雷 于 2014-6-28 00:27 编辑
package IO;
import java.io.File;
public class FileDemo3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
File f = new File("c:\\Windows");
showDir(f,0);
}
public static void showDir(File dir,int level){
System.out.println(getLevel(level)+dir.getName());
level++;
File[] files =dir.listFiles();
for(int x=0;x<files.length;x++){
if(files[x].isDirectory()){
showDir(files[x],level);
}else{
System.out.println(getLevel(level)+files[x]);
}
}
}
public static String getLevel(int level){
StringBuilder sb = new StringBuilder();
for(int x=0;x<level;x++){
sb.append("-----");
}
return sb.toString();
}
}
复制代码
Exception in thread "main" java.lang.NullPointerException
at IO.FileDemo3.showDir(FileDemo3.java:17)
at IO.FileDemo3.showDir(FileDemo3.java:20)
at IO.FileDemo3.showDir(FileDemo3.java:20)
at IO.FileDemo3.main(FileDemo3.java:10)
复制代码
有的目录会有空指针 换一个目录可能就没空指针 怎么回事这个
作者:
陈培果
时间:
2014-6-25 17:10
我感觉是Windows目录下有些文件是隐藏的,或者是没有访问权限的。
作者:
weitz
时间:
2014-6-25 18:28
问题应该是出在dir.listFiles();这里,如果目录是空的,数组就是null,调用files.length,就会报空指针
作者:
杨庆雷
时间:
2014-6-25 21:26
陈培果 发表于 2014-6-25 17:10
我感觉是Windows目录下有些文件是隐藏的,或者是没有访问权限的。
应该是 有些文件是隐藏的 所以无法访问 返回的files就是空的 thx
作者:
Running
时间:
2014-6-25 22:11
文件被隐藏。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2