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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 327753899 中级黑马   /  2014-12-5 22:36  /  1086 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class Test9 {

        public static void main(String[] args) {
                // TODO 自动生成的方法存根
                File orig = new File("e:\\123456");
                File dest = new File("d:\\java");
                findJava(orig,dest);
        }

        public static void findJava(File orig, File dest) {
                // TODO 自动生成的方法存根
                if(!dest.exists()){
                        dest.mkdir();
                }
                if(!dest.isDirectory()){
                        dest.mkdir();
                }
                File[] files = orig.listFiles();
                for(File file : files){
                        if(file.isDirectory()){
                                findJava(file,dest);
                        }else if(file.getName().endsWith(".java")){
                                copy(file,dest);
                        }
                }
        }

        public static void copy(File file, File dest){
                // TODO 自动生成的方法存根
                BufferedReader buf = null;
                PrintWriter out = null;
                try {
                        buf = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
                        out = new PrintWriter(dest+"\\"+file.getName().replace(".java", ".txt"));
                } catch (FileNotFoundException e) {
                        // TODO 自动生成的 catch 块
                        e.printStackTrace();
                }
                String line = null;
                try {
                        while((line=buf.readLine())!=null){
                                out.write(line);
                        }
                } catch (IOException e) {
                        // TODO 自动生成的 catch 块
                        e.printStackTrace();
                }finally{
                        try {
                                if(buf!=null){
                                        buf.close();
                                }
                                if(out!=null){
                                        out.close();
                                }
                        } catch (Exception e2) {
                                // TODO: handle exception
                        }
                }
        }

}

3 个回复

倒序浏览
本帖最后由 赖永树 于 2014-12-5 22:49 编辑

空指针错误,orig的文件夹你没有创建出来
  1. <font style="background-color: rgb(255, 255, 255);">    public static void findJava(File orig, File dest) {
  2.             // TODO 自动生成的方法存根
  3.            if(!orig.exists()){  //这里打错了,已修正
  4.             orig.mkdir(); //这里打错了,已修正
  5.             }
  6.             if(!dest.isDirectory()){
  7.                     dest.mkdir();
  8.             }
  9.             File[] files = orig.listFiles();
  10.             for(File file : files){
  11.                     if(file.isDirectory()){
  12.                             findJava(file,dest);
  13.                     }else if(file.getName().endsWith(".java")){
  14.                             copy(file,dest);
  15.                     }
  16.             }
  17.     }</font>
复制代码

回复 使用道具 举报
  File orig = new File("e:\\123456");这行有问题,要吗这里的文件必须存在,要么加个判断,没有的话就建立这个文件
回复 使用道具 举报
娱尘 发表于 2014-12-5 23:04
File orig = new File("e:\\123456");这行有问题,要吗这里的文件必须存在,要么加个判断,没有的话就建 ...

这一行是没有问题的,只不过他在这里错了,我猜是复制了第一段的代码忘记改变量名了
  1. if(!dest.exists()){
  2.                          dest.mkdir();
  3.                  }
  4.                  if(!dest.isDirectory()){
  5.                          dest.mkdir();
  6.                  }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马