黑马程序员技术交流社区

标题: IO流复制文件问题,思路有点乱,求帮忙 [打印本页]

作者: 路边小色狼    时间: 2013-9-17 21:52
标题: IO流复制文件问题,思路有点乱,求帮忙
本帖最后由 路边小色狼 于 2013-9-17 23:23 编辑

需求:将指定目录下所有.java文件拷贝到另一个目的中,并将扩展名改为.txt。

虽然有复制成功,但是感觉正确思路肯定不是我这么乱的吧
有耐心的朋友帮我看看,谢了
  1. import java.io.*;

  2. public class Test09 {
  3. public static void main(String[] args) throws IOException
  4. {
  5. copyFile("c:\\abc","f:\\cq");//copyFile(要复制的目录路径,目标目录路径)
  6. }


  7. public static void copyFile(String a,String b) throws IOException
  8. {

  9. File f =new File(b);
  10. f.mkdir(); //建立目标文件夹
  11. File dir=new File(a);
  12. String[] s=dir.list(); //将要复制目录的文件名存入字符串数组s中
  13. for(int x=0;x<s.length;x++)
  14. {
  15. if (s[x].endsWith(".java"))
  16. copyTo(a+"\\"+s[x],b+"\\"+s[x].replace(".java",".txt"));//copyTo(要复制的文件路径,目标文件路径)
  17. }

  18. }

  19. //这是将文件从路径dir1复制到dir2路径的方法。
  20. public static void copyTo(String dir1,String dir2) throws IOException
  21. {
  22. BufferedReader buf=new BufferedReader(new FileReader(dir1));
  23. BufferedWriter bfw=new BufferedWriter(new FileWriter(dir2));
  24. String line=null;
  25. while((line=buf.readLine())!=null)
  26. {
  27. bfw.write(line);
  28. bfw.newLine();
  29. bfw.flush();
  30. }
  31. bfw.close();
  32. buf.close();
  33. }

  34. }
复制代码

作者: 张聪珉    时间: 2013-9-17 22:46
你的方法只能复制源文件夹下的.java文件,而且源文件夹下如果有.java结尾为的文件夹估计会报错吧,这一个我没试过,你可以试一下,所以要判断源文件夹里是否还有文件夹,这里需要用到递归哦

还是把路径封装成File对象比较好,定义的copyFile方法就接收,两个File对象,在目的地创建文件夹,判断目的地是否存在,不存在才创建,然后先判断源文件夹是否存在,接着判断是否是文件夹,这两部明白为什么把?是文件夹的话,调用源文件夹File对象的listFiles方法,获取源文件夹下的File数组,遍历数组,这里还要再判断数组里的每一个File对象是否是文件夹,是就得用到递归,懂吗,不是就getName获取名称,判断是否是.java文件,是就获取前缀名称,再和.txt封装成新的File对象,这里比较烦哈,调用复制文件方法,接收上面这俩参数,不知道你看懂了吗,我是我的思路,如果觉得还有什么不懂得话再提问哈
作者: 坚持。    时间: 2013-9-17 23:00
1.要确定源和目的
2.为了提高效率可以定义一个缓冲对象
3.在相应的控制代码里面
一边一个劲的读取文件,一边一个劲的写出文件
4.关流
作者: 路边小色狼    时间: 2013-9-17 23:15
张聪珉 发表于 2013-9-17 22:46
你的方法只能复制源文件夹下的.java文件,而且源文件夹下如果有.java结尾为的文件夹估计会报错吧,这一个我 ...

恩,你这么一说确实发现我这代码问题很多
1.要是有.java的文件夹就报错。
2.还有要是目的文件存在的话是不复制的

我再试试看,谢谢哈,恭喜你进25期{:soso_e113:}

作者: 张聪珉    时间: 2013-9-17 23:42
路边小色狼 发表于 2013-9-17 23:15
恩,你这么一说确实发现我这代码问题很多
1.要是有.java的文件夹就报错。
2.还有要是目的文件存在的话是 ...

呵呵,也祝你早日来黑马哈





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