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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 胡发友 中级黑马   /  2013-2-7 10:50  /  1839 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


注:将c盘的根目录封装成File对象后,在运行回报java.lang.NullPointerException
      但是如果把目录换成其他的(比如c:\\java),又正常,

    不解,请大家帮忙解决下;谢谢


class IOTest{
        public static void main(String [] args){

               
               
                File dir = new File("c:\\");
                List<File> list = new ArrayList<File>();
                fileoList(dir,list);
               
                File file = new File("c:\\a.txt");
                listToFile(list,file.toString());
        }

        public static void fileoList(File dir,List<File> list){
                File [] files = dir.listFiles();
                for(File file : files){
                        if(file.isDirectory())
                                fileoList(file,list);
                        else{
                                if(file.getName().endsWith(".java"))
                                        list.add(file);
                        }
                               

                }
        }
        public static void listToFile(List<File> list,String filePath){
                BufferedWriter bufw = null;
                       
                try{       
                        bufw = new BufferedWriter(new FileWriter(filePath));
                        for(File paths : list){
                                String path = paths.getAbsolutePath();
                                bufw.write(path);
                                bufw.flush();
                                bufw.newLine();
                        }
                }
                catch(IOException e){
                        throw new RuntimeException("读取数据失败");
                }
                finally{
                        try{
                                if(bufw != null)
                                        bufw.close();
                        }
                        catch(Exception e){
                                throw new RuntimeException("写入流关闭失败");
                        }
                }
               
        }
}

6 个回复

倒序浏览
黄成超 发表于 2013-2-7 22:10
你要创建的是文件,不是目录,所以一定要有创建的对象!在你的创建中并没有创建出的对象,也就是说你要创建 ...

抛出的异常显示是在fileToList这个方法中,所以还没到创建文件对象那一步,我打印了File数组里的数据,是可以打印的,只是在for循环遍历时,出现的空指针异常
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马