黑马程序员技术交流社区

标题: 自己通过写的一个文件夹复制的功能,请大神指正 是否有更简单的方法 [打印本页]

作者: 赵旗    时间: 2015-5-15 09:46
标题: 自己通过写的一个文件夹复制的功能,请大神指正 是否有更简单的方法
  1. package in.itcast_Test;

  2. import java.io.BufferedInputStream;
  3. import java.io.BufferedOutputStream;
  4. import java.io.File;
  5. import java.io.FileInputStream;
  6. import java.io.FileNotFoundException;
  7. import java.io.FileOutputStream;
  8. import java.io.IOException;

  9. public class FileTest {

  10.         /**
  11.          * 复制文件夹 遍历文件 1.先进行判断是否是文件夹 如果是文件夹的话 进行创建文件夹 2.如果不是文件夹的话 直接复制. 3.在文件夹下进行遍历..
  12.          *
  13.          *
  14.          * @param args
  15.          * @throws IOException
  16.          */
  17.         public static void main(String[] args) throws IOException {
  18.                 File file = new File("F:\\笔记");// 创建源文件的file对象
  19.                 File file1 = new File("f:\\复制文件夹1"); // 目标文件夹
  20.                 file1.mkdir(); // 先创建目标文件夹
  21.                 xx(file, file1);
  22.         }

  23.         public static void xx(File file, File file1) throws FileNotFoundException,
  24.                         IOException {
  25.                 File[] li = file.listFiles();
  26.                 for (File file2 : li) {
  27.                         if (file2.isDirectory()) {
  28.                                 File f = new File(file1, file2.getName());
  29.                                 f.mkdir();
  30.                                 xx(file2, f);
  31.                         } else {
  32.                                 File f2 = new File(file1, file2.getName());
  33.                                 BufferedInputStream input = new BufferedInputStream(new FileInputStream(file2));
  34.                                 BufferedOutputStream output = new BufferedOutputStream(new FileOutputStream(f2));
  35.                                 byte[] by = new byte[1024];
  36.                                 int len = -1;
  37.                                 while ((len = input.read(by)) != -1) {
  38.                                         output.write(by, 0, len);
  39.                                 }
  40.                                 input.close();
  41.                                 output.close();
  42.                         }
  43.                 }
  44.         }

  45. }
复制代码

作者: 虎鹏    时间: 2015-5-15 14:57
学习了!
作者: 大西洋    时间: 2015-5-15 15:03
学习!感谢您的分享!




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