黑马程序员技术交流社区

标题: 有个报错,求大神指点 [打印本页]

作者: SYAD    时间: 2015-8-31 19:17
标题: 有个报错,求大神指点
package jihe;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.FilenameFilter;
import java.io.IOException;

/*
* 取出F盘下全部.java文件的文件路径保存到java.txt文件中
*
*/
public class Test15 {
public static void main(String[] args) throws IOException {
       
        File file = new File("F:\\");
        getFile(file);
       
       
}

//获取文件
public static void getFile(File file) throws IOException
{
        if (file == null) {
                return;
        }
        //文件筛选
        File[] files = file.listFiles(new FilenameFilter() {
               
                @Override
                public boolean accept(File dir, String name) {
                        File f = new File(dir,name);
                        if (f.isFile() && name.endsWith(".java")) {
                                return true;
                        }
                        //如果是文件夹则递归
                        if(f.isDirectory())
                        {
                                try {
                                        getFile(f);
                                } catch (IOException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                }
                        }
                        return false;
                }
        });
       
        //往java.txt里面写,并追加内容
        BufferedWriter bw = new BufferedWriter(new FileWriter(new File("java.txt"),true));
       
        //具体写的是筛选出的文件的绝对路径
        for (File file2 : files) {
                if (file2 == null || bw == null) {
                        return;
                }
                bw.write(file2.getAbsolutePath());
                bw.newLine();
                bw.flush();
        }
       
        bw.close();
       
       
}
}



作者: SYAD    时间: 2015-8-31 19:18
java.txt文件里面有写入的信息但是会报这样的错:
Exception in thread "main" java.lang.NullPointerException
        at jihe.Test15.getFile(Test15.java:55)
        at jihe.Test15$1.accept(Test15.java:41)
        at java.io.File.listFiles(File.java:1246)
        at jihe.Test15.getFile(Test15.java:29)
        at jihe.Test15.main(Test15.java:17)
作者: 殷俊    时间: 2015-8-31 19:52
   if (file == null) {
                return;
        }
因为你这步只能判断输入的路径是否为空字符,而不能判断一个文件夹是否为空,所以,当你的文件夹有空的时候,就会报空指针异常




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