本帖最后由 张权 于 2013-1-13 20:47 编辑
public class SearchAndCopy {
public static void main(String[] args) {
// 封装目录
File file = new File("D:\\");//如果我封装时,封装一个具体的文件,不判断也不会报空指针异常
search(file);
}
public static void search(File file) {
File[] files = file.listFiles();
if (files != null) {//如果这里不判断,就会报空指针异常,为什么?
for (File f : files) {
if (f.isFile() && f.getName().endsWith(".java")) {
System.out.println(f);
} else {
search(f);
}
}
}
}
总结上面的问题,问题就是如果读取文件时,只封装盘符,那么当调用listFiles()方法获取的文件就必须要判断一下,不判断就报空指针异常,如果封装了具体的文件,获取到的文件不用判断也不会报错,为什么? |
|