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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© bowen-xiao 中级黑马   /  2015-1-15 21:18  /  1263 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 bowen-xiao 于 2015-1-20 08:38 编辑



程序需求:
遍历D盘目录下,所有的文件夹,找到.java文件,统一复制到D:盘test目录。


问题:注意查看输出结果Test目录,删除下面文件,再次运行,看两次输出结果。
  1. /**
  2. * ClassName:CopyFileDemo2 <br/>
  3. * Function: 遍历D盘目录下,所有的文件夹,找到.java文件,统一复制到D:盘test目录。
  4. * Reason:        注意查看输出结果
  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:\\");

  22.                 File destForder = new File("d:\\Test\\");

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

  25.         private static void isFile(File srcForder, File destForder) throws IOException {

  26.                 if (!destForder.exists())

  27.                         destForder.mkdir();

  28.                 File[] file = srcForder.listFiles();

  29.                 if (file != null) {

  30.                         for (File srcFile : file) {

  31.                                 if (srcFile.isDirectory()) {

  32.                                         isFile(srcFile, destForder);

  33.                                 } else {

  34.                                         if (srcFile.getName().endsWith(".java")) {
  35.                                                 
  36.                                                 File destFile = new File (destForder,srcFile.getName()) ;

  37.                                                 copyFile(srcFile, destFile);
  38.                                         }
  39.                                 }
  40.                         }
  41.                 }
  42.         }

  43.         private static void copyFile(File srcFile, File destFile) throws IOException {

  44.                 BufferedReader br = new BufferedReader(new FileReader(srcFile));

  45.                 BufferedWriter bw = //new BufferedWriter(new FileWriter(destFile)) ;
  46.                
  47.                 new BufferedWriter(new OutputStreamWriter(new FileOutputStream(destFile, true), "UTF-8"));

  48.                 String line = null ;

  49.                 while ( (line = br.readLine())!= null) {
  50.                         if( !line.isEmpty()){
  51.                                 System.out.println( br.readLine());
  52.                         bw.write(line);
  53.                         bw.newLine();
  54.                         bw.flush();
  55.                         }
  56.                 }

  57.                 br.close();
  58.                 bw.close();
  59.         }
  60. }
复制代码



2 个回复

倒序浏览
请管理转移版块,发错位置了,本来是发问题的,点错了。
回复 使用道具 举报
问题解决修改67行代码 new BufferedWriter(new OutputStreamWriter(new FileOutputStream(destFile, true), "UTF-8"));修改后为 new BufferedWriter(new OutputStreamWriter(new FileOutputStream(destFile), "UTF-8"));把文件追加模式除去
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马