黑马程序员技术交流社区

标题: 遍历文件的问题 [打印本页]

作者: 封明川    时间: 2012-7-12 16:36
标题: 遍历文件的问题
本帖最后由 封明川 于 2012-7-13 12:09 编辑

import java.io.File;

public class FileDemo3 {
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                File dir = new File("d:\\");
                showDir(dir);                        
        }

        public static void showDir(File dir)
        {
                System.out.println(dir);
                File[] files = dir.listFiles();
               
                for(int x=0; x<files.length; x++)
                {
                        if(files[x].isDirectory())
                                showDir(files[x]);
                        else
                                System.out.println(files[x]);
                }
        }
}

视频上毕老师的也是这样写的啊
为什么我遍历到后面就出问题了呢
到下面这个文件的时候就出问题了,没想明白
d:\System Volume Information
Exception in thread "main" java.lang.NullPointerException
        at iostreamdemo.FileDemo3.showDir(FileDemo3.java:23)
        at iostreamdemo.FileDemo3.showDir(FileDemo3.java:26)
        at iostreamdemo.FileDemo3.main(FileDemo3.java:13)


作者: 朱东方    时间: 2012-7-12 16:50
本帖最后由 朱东方 于 2012-7-12 16:57 编辑

为什么我不去掉public就编译不了呢,去掉了就可以编译了。

浏览完文件也出现了错误,不知道为什么。

作者: 游兴钟    时间: 2012-7-12 20:10
朱东方 发表于 2012-7-12 16:50
为什么我不去掉public就编译不了呢,去掉了就可以编译了。

浏览完文件也出现了错误,不知道为什么。

public修饰的类必须和你保持的Java文件同名
作者: 游兴钟    时间: 2012-7-12 20:17
public class FileDemo3 {
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                File dir = new File("d:\\");
                showDir(dir);                        
        }

        public static void showDir(File dir)
        {
                System.out.println(dir);
                File[] files = dir.listFiles();
               
                for(int x=0; x<files.length; x++)
                {
                        if(files[x].isDirectory()&&!(files[x].isHidden())) //因为那个是隐藏文件 java无法访问所以就报空指针
                                                                   //  异常了加个判断非隐藏好了

                                showDir(files[x]);
                        else
                                System.out.println(files[x]);
                }
        }
}


作者: 朱东方    时间: 2012-7-12 20:54
achilles 发表于 2012-7-12 20:10
public修饰的类必须和你保持的Java文件同名

原来是这么回事啊,记住了。




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