黑马程序员技术交流社区

标题: 疑难杂症,求名医 [打印本页]

作者: die_er    时间: 2014-4-2 13:37
标题: 疑难杂症,求名医

import java.io.File;
import java.io.FilenameFilter;

public class Demo {

        public static void main(String[] args){
                File dir = new File("d:");
                showDir(dir);
        }
       
        public static void showDir(File dir)
        {
                System.out.println(dir);
                File[] files = dir.listFiles();
                for(int i=0; i<files.length; i++){
                        if(files[i].isDirectory())
                                showDir(files[i]);
                        else
                        {
                        String str = files[i].toString();
                        if(str.endsWith(".mp3"))
                                System.out.println(files[i]);
                        }
                }
        }
}
代码如上,运行的结果是:

d:\360SoftMove\SoftMoveConfig\我的音乐
d:\360SoftMove\SoftMoveConfig\收藏夹
d:\360SoftMove\SoftMoveConfig\桌面
d:\360SoftMove\SoftMoveConfig\用户临时文件夹
d:\aa
d:\CloudCache
d:\CloudCache\bfcapp
d:\CloudCache\bfcapp\link
d:\IP代理_2.88
d:\Media
d:\System Volume Information
Exception in thread "main" java.lang.NullPointerException
        at For20_7.Demo.showDir(Demo.java:17)
        at For20_7.Demo.showDir(Demo.java:19)
        at For20_7.Demo.main(Demo.java:10)
说空指针错误,我特意传个空文件夹的对象,都不报错,老是扫描整个d盘就出错,求指点
作者: die_er    时间: 2014-4-3 08:45
:(一天了,么人吗
作者: 何伟超    时间: 2014-4-3 20:19
d: 换成d://试试
作者: shi0000    时间: 2014-4-3 22:20
d盘是“D:\\”
作者: 蓝雨星空    时间: 2014-4-6 18:34
在进行for循环遍历前,要进行一下判断,if(files!=null)  这样就行了
作者: ﹊佑雨时杰↘    时间: 2014-4-8 16:32
for(int i=0; i<files.length; i++){   这一行出错的  原因是 File[] files = dir.listFiles(); 这一行事 files得到的files 是空 , 所以在这前面要加非空判断




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2