黑马程序员技术交流社区

标题: 复制文件夹 [打印本页]

作者: Jam-l    时间: 2013-10-11 17:26
标题: 复制文件夹
本帖最后由 Jam-l 于 2013-10-11 17:48 编辑

  今天下午面试完了,面试成绩39分还好,面试中问到了一个复制文件夹的问题,由于描述不是很清楚.这是之前自己写的一个代码,其有些判断文件存在的问题没有完善.不过大概也可以完成对文件夹的复制,并把复制文件夹下的.java文件转换成.txt文件.以下是代码:
  1. <p>/*
  2. * 复制一个文件夹
  3. */
  4. public class Demo4 {
  5. public static void main(String[] args) {
  6.   File srcDir = new File("G:\\123");
  7.   File destDir = new File("G:\\321");
  8.   destDir.mkdir();
  9.   findFile(srcDir,destDir);
  10. }</p><p>private static void findFile(File srcDir, File destDir) {
  11.   File[] files = srcDir.listFiles();
  12.   for(File file:files){
  13.    if(file.isDirectory()){
  14.     String dirName = file.getName();
  15.     File newDir = new File(destDir+"\\"+dirName);
  16.     newDir.mkdir();
  17.     findFile(file, newDir);
  18.    }else{
  19.     try {
  20.      String fileName = file.getName();
  21.      String[] str = fileName.split("\\.");
  22.      File newFile = new File(destDir+"\\"+str[0]+".txt");
  23.      newFile.createNewFile();
  24.      copyFile(file,newFile);
  25.     } catch (IOException e) {
  26.      e.printStackTrace();
  27.     }
  28.    }
  29.   }
  30. }</p><p> private static void copyFile(File file,File newFile) {
  31.   try {
  32.    BufferedReader bufr = new BufferedReader(new FileReader(file));
  33.    BufferedWriter bufw = new BufferedWriter(new FileWriter(newFile));
  34.    String line = null;
  35.    while((line=bufr.readLine())!=null){
  36.     bufw.write(line);
  37.    }
  38.    bufr.close();
  39.    bufw.close();
  40.   } catch (IOException e) {
  41.    // TODO Auto-generated catch block
  42.    e.printStackTrace();
  43.   }
  44.   
  45. }
  46. }</p>
复制代码





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