A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 宁振庄 中级黑马   /  2012-9-24 19:14  /  1175 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 宁振庄 于 2012-9-24 20:03 编辑

看到老毕的File类视频的代码
import java.io.File;

public class FileDemo3 {
        public static void main(String[] args) {
                File file = new File("D:\\java");
                getFiles(file);
        }
      
// 列出指定目录下的文件夹
        private static void getFiles(File file) {
                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());
                        }
                }
        }
}

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

2 个回复

正序浏览
空指针说明是没有对象的引用
这句话File[] files = file.listFiles();已经创建了对象 当然不会报空指针异常啦
回复 使用道具 举报
因为有你指定的那个文件夹。遍历的时候是从你指定的那个文件夹开始的。所以数组中不是空的。当你指定的文件夹不存存时就会报错。
javaaa//我指定的这个目录不存在。所以报错
Exception in thread "main" java.lang.NullPointerException
        at Test.TestFile.getFiles(TestFile.java:16)
        at Test.TestFile.main(TestFile.java:9)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马