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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© bowen-xiao 中级黑马   /  2015-1-19 20:08  /  1037 人查看  /  5 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

功能说明:
遍历指定文件夹src目录下,所有的文件夹下的子文件, 找到java类型的文件,统一复制到目标destForder文件夹目录。

代码实现如下:
  1. /**
  2. * ClassName:CopyFileDemo2
  3. * Function: 遍历指定文件夹src目录下,所有的文件夹下的子文件,
  4. * 找到.java文件,统一复制到目标destForder文件夹目录。
  5. * Date:     2015-1-12 下午1:05:31 <br/>
  6. * @author   Bowen
  7. * @version  
  8. * @since    JDK 1.6
  9. * @see          
  10. */

  11. import java.io.BufferedReader;
  12. import java.io.BufferedWriter;
  13. import java.io.File;
  14. import java.io.FileOutputStream;
  15. import java.io.FileReader;
  16. import java.io.FileWriter;
  17. import java.io.IOException;
  18. import java.io.OutputStreamWriter;

  19. public class CopyFileDemo2 {

  20.         public static void main(String[] args) throws IOException {

  21.                 File srcForder = new File("D:\\workspace\\exam");

  22.                 File destForder = new File("c:\\test\\");

  23.                 isFile(srcForder, destForder);
  24.         }

  25.         private static void isFile(File srcForder, File destForder)
  26.                         throws IOException {
  27.                 File[] file = srcForder.listFiles();
  28.                         for (File srcFile : file) {
  29. //                                如果对象为文件夹,则调用自身查找目录下文件
  30.                                 if (srcFile.isDirectory()) {
  31.                                         isFile(srcFile, destForder);
  32.                                 } else {
  33. //                                        如果对象为文件,看是否为java类型的源文件如果是拷贝文件到指定目录
  34.                                         if (srcFile.getName().endsWith(".java")) {
  35.                                                 File destFile = new File(destForder, srcFile.getName());
  36.                                                 copyFile(srcFile, destFile);
  37.                                         }
  38.                         }
  39.                 }
  40.         }

  41.         private static void copyFile(File srcFile, File destFile)
  42.                         throws IOException {
  43.                 BufferedReader br = new BufferedReader(new FileReader(srcFile));

  44.                 BufferedWriter bw =
  45. //                                new BufferedWriter(new FileWriter(destFile)) ;

  46.                 new BufferedWriter(new OutputStreamWriter(new FileOutputStream(destFile), "UTF-8"));
  47.                
  48.                 // 当读到-1时说明已经读完文件
  49.                 // 设置一个文件缓冲区,一次读1024个字符,再进行输出
  50.                 // wihile最后一次运行取到文件内部长度进行输出
  51.                 int lenth = 0;
  52.                 char[] buff = new char[1024];
  53.                 while ((lenth = br.read(buff)) != -1) {
  54.                         bw.write(buff,0,lenth);
  55.                 }

  56. /*                String line = null;
  57.                 while ((line = br.readLine()) != null) {
  58.                                 bw.write(line);
  59.                                 bw.newLine();
  60.                                 bw.flush();
  61.                 }*/

  62.                 br.close();
  63.                 bw.close();
  64.         }
  65. }
复制代码



评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

5 个回复

正序浏览
感谢分享,看着不错
回复 使用道具 举报
注意观察  bw.newLine();写出来的文档比用上面写法,写出来的文件长度要大。
回复 使用道具 举报
不错,拷贝下有时间研究下
回复 使用道具 举报
复制一下,有时间看看,谢谢分享!
回复 使用道具 举报
复制一下,有时间看看,谢谢分享!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马