2 qq 30151545 qq_30151545 于 2016.03.02 00:30 提问

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
caozhy   Ds   Rxr 2016.03.02 04:23
已采纳
 d:/一个斜杠
或者
d:\\两个反斜杠
qq_30151545
qq_30151545 还有一原因:有时候中文目录不行,换个英文目录就好了。后来发现了
接近 2 年之前 回复
wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.03.02 07:10

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

xiongzirui
xiongzirui   2016.03.02 08:59

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

WuXiaoQuan824212
WuXiaoQuan824212   2016.03.02 09:01
首先你的目录错误应该改为D:\我的音乐
还有一个类的定义没有中文,当然这种定义不会报错、
xionglangs
xionglangs   Rxr 2016.03.02 10:50

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

xionglangs
xionglangs   Rxr 2016.03.02 10: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());
        }
    }
}
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!