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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. package com.kxg_2;

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


  8. /*
  9. * 需求:复制多级文件夹D:\Test到D:\Test2里面
  10. */
  11. public class Copy3 {
  12.         public static void main(String[] args) throws IOException {
  13.                 // 封装数据源
  14.                 File srcFile = new File("D:\\Test");
  15.                 // 封装目的地
  16.                 File destFile = new File("c:\\");
  17.                 // 如果没有目的地文件夹就创建
  18.                 if (!destFile.exists()) {
  19.                         destFile.mkdir();
  20.                 }
  21.                 copyFolder(srcFile, destFile);
  22.         }

  23.         private static void copyFolder(File srcFile, File destFile)
  24.                         throws IOException {
  25.                 // 判断是否文件夹
  26.                 if (srcFile.isDirectory()) {
  27.                         // 是文件就在目的地文件夹中创建这个文件夹
  28.                         File newFolder = new File(destFile, srcFile.getName());
  29.                         newFolder.mkdir();

  30.                         // 获取此文件夹中File对象数组
  31.                         File[] fileArray = srcFile.listFiles();

  32.                         // 遍历所有File对象,并递归
  33.                         for (File file : fileArray) {
  34.                                 copyFolder(file, newFolder);
  35.                         }

  36.                         // 是文件就复制到目的地目录中去
  37.                 } else {
  38.                         File newFile = new File(destFile, srcFile.getName());
  39.                         copyFile(srcFile, newFile);
  40.                 }
  41.         }

  42.         private static void copyFile(File srcFile, File newFile) throws IOException {
  43.                 BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
  44.                                 srcFile));
  45.                 BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(newFile));
  46.                
  47.                 byte[] bys = new byte[1024];
  48.                 int len =0;
  49.                 while((len=bis.read(bys))!=-1)
  50.                 {
  51.                         bos.write(bys,0,len);
  52.                 }
  53.                 bis.close();
  54.                 bos.close();
  55.         }
  56. }
复制代码


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马