黑马程序员技术交流社区
标题:
递归,列出名字,但是空指针异常
[打印本页]
作者:
run_wind
时间:
2014-12-1 23:55
标题:
递归,列出名字,但是空指针异常
import java.io.File;
/**
*
* 打印一个目录下所有子文件
*
*/
public class DiguiDemo
{
public static void main(String[] args)
{
File f = new File("E:\\黑马\\Java面试宝典2013版.doc");
printDir(f);
}
public static void printDir(File f)
{
File[] files = f.listFiles();
for (int x=0;x<files.length;x++)
{
if (files[x].isDirectory())
printDir(files[x]);
else
System.out.println(files[x].toString());
}
}
}
为什么会有空指针异常呢,直接传个文件不是应该是files[0]吗
作者:
奋斗的蜗牛ksd
时间:
2014-12-2 00:59
本帖最后由 奋斗的蜗牛ksd 于 2014-12-2 01:17 编辑
File f = new File("E:\\黑马\\Java面试宝典2013版.doc");
你的new File 里面 传入的是一个 后缀为doc的目录, 该目录是空的。所以空指针异常
作者:
奋斗的蜗牛ksd
时间:
2014-12-2 01:04
本帖最后由 奋斗的蜗牛ksd 于 2014-12-2 01:09 编辑
还有你题目的目的是想做什么?输出doc文件名?
作者:
这是我的地盘
时间:
2014-12-2 01:10
File[] files = f.listFiles();中的files可能会为空,从而导致空指针异常,要判断其是否为空!
作者:
菜鸟一号
时间:
2014-12-2 08:55
亲,你是不是应该传个目录进去才通呢?另外printDir里是不是应该增加一些建壮性的判断比较合理呢?
作者:
ppStudent
时间:
2014-12-2 09:33
listFiles被调用的时候该File文件里面初始化的应该是路径,而不是具体文件名
作者:
wangzheng406
时间:
2014-12-2 11:25
是file[null]吧,file[0]代表有一个文件
作者:
ls61532529
时间:
2014-12-2 23:10
太深奥了,完全不懂啊,我要努力
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2