黑马程序员技术交流社区
标题:
空指针问题
[打印本页]
作者:
余海龙
时间:
2012-2-21 12:14
标题:
空指针问题
本帖最后由 余海龙 于 2012-2-24 21:43 编辑
package cn.itcast.file;
import java.io.File;
public class FileDemo3 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
File file = new File("F:\\java");
getFiles(file);
}
// 列出指定目录下的文件夹
private static void getFiles(File file) {
// TODO Auto-generated method stub
System.out.println(file.getName());
File[] files = file.listFiles();
for(File f : files){
//如果file文件夹中没有内容,会出现空指针异常的, 这里为什么不会报空指针异常呢?
if(f.isDirectory()){
getFiles(f);
}else{
System.out.println(f.getName());
}
}
}
}
作者:
刘基军
时间:
2012-2-21 12:29
public File[] listFiles()
返回:
抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件和目录。
如果目录为空,那么数组也将为空。如果抽象路径名不表示一个目录,或者发生 I/O 错误,则返回 null。
作者:
胡威
时间:
2012-2-21 12:47
如果file文件夹中没有内容,那么file.listFiles()返回的不是null,而是一个零长度的数组,也被叫做空数组,空数组也是一个对象,只不过长度为零,而只有当抽象路径"F:\\java"不表示一个目录的时候才会返回null,才会出现空指针异常。
作者:
黑马唐浩
时间:
2012-2-21 12:49
for(File f : files){ //如果file文件夹中没有内容,会出现空指针异常的, 这里为什么不会报空指针异常呢?
if(f.isDirectory()){
getFiles(f);
}
因为如果file文件夹中没有内容。for循环是进不去的。不执行啊。
你把它改成普通for循环就知道了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2