A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© SYAD 中级黑马   /  2015-8-31 19:17  /  338 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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();
       
       
}
}


2 个回复

倒序浏览
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)
回复 使用道具 举报
   if (file == null) {
                return;
        }
因为你这步只能判断输入的路径是否为空字符,而不能判断一个文件夹是否为空,所以,当你的文件夹有空的时候,就会报空指针异常
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马