qq_30151545
无清
采纳率66.7%
2016-03-01 16:30 阅读 1.8k
已采纳

java 打印目录下所有文件和目录的名字 疑问求解

图片说明

结果为:
Exception in thread "main" java.lang.NullPointerException
at IO.打印目录下所有目录名文件名.print(打印目录下所有目录名文件名.java:10)
at IO.打印目录下所有目录名文件名.main(打印目录下所有目录名文件名.java:25)

如果把main方法中File file = new File("d:"); 空指针异常会消失,编译会通过,但结果不对,请问大家为什么?
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

6条回答 默认 最新

  • 已采纳
    caozhy 从今以后生命中的每一秒都属于我爱的人 2016-03-01 20:23
     d:/一个斜杠
    或者
    d:\\两个反斜杠
    
    点赞 评论 复制链接分享
  • wojiushiwo945you 毕小宝 2016-03-01 23:10

    就不能把类名称定义为英文字符组合么?哪有用中文而且还是这么长的中文名称作类名的!

    点赞 评论 复制链接分享
  • xiongzirui 夜空中的程序猿 2016-03-02 00:59

    这个错误是因为你d盘下面根本没有"我的音乐"这个目录导致的空指针

    点赞 评论 复制链接分享
  • WuXiaoQuan824212 吴小全 2016-03-02 01:01
    首先你的目录错误应该改为D:\我的音乐
    还有一个类的定义没有中文,当然这种定义不会报错、
    
    点赞 评论 复制链接分享
  • xionglangs 编程爱好者熊浪 2016-03-02 02:50

    \这个在java中是转义符,所以要它表示路径,必须再转移一次,也就是变成\,但是/这个就没有限制了,在java中路径可以用/隔开。也就是D:\我的音乐=D:/我的音乐。这两个都是争取的路径,别的路径就都不对了。

    点赞 评论 复制链接分享
  • xionglangs 编程爱好者熊浪 2016-03-02 02:59

    \这个在java中是转义符,所以要它表示路径,必须再转移一次,也就是变成\,但是/这个就没有限制了,在java中路径可以用/隔开。也就是D:\我的音乐=D:/我的音乐。这两个都是争取的路径,别的路径就都不对了。public static void main(String[] args) throws IOException {
    File file = new File("F:\Droid4X");
    fileName(file);
    }

    public static void fileName(File file) {
        File[] files = file.listFiles();
        for (File f : files) {
            if (f.isDirectory()) {
                fileName(f);
            } else {
                System.out.println(f.getName());
            }
        }
    }
    
    点赞 评论 复制链接分享

相关推荐