黑马程序员技术交流社区

标题: 【记录】代码练习-复制单级文件夹 [打印本页]

作者: Kevin.Kang    时间: 2015-7-28 16:29
标题: 【记录】代码练习-复制单级文件夹
  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:\T到D:\Test
  10. */
  11. public class Copy {
  12.         public static void main(String[] args) throws IOException {
  13.                 // 首先把数据源和数据目的地封装起来
  14.                 // 封装数据源
  15.                 File srcFolder = new File("D:\\T");
  16.                 // 封装目的地
  17.                 File destFolder = new File("D:\\kxg");

  18.                 // 如果数据目的地这个文件夹不存在就创建
  19.                 if (!destFolder.exists()) {
  20.                         destFolder.mkdir();
  21.                 }

  22.                 // 得到数据源的File对象数组
  23.                 File[] fileArray = srcFolder.listFiles();

  24.                 // 遍历得到每个File对象
  25.                 for (File srcFile : fileArray) {
  26.                         // 获取每个对象的文件夹名称
  27.                         String srcName = srcFile.getName();

  28.                         // 在目的地文件夹创建相同名字的文件抽象表示形式
  29.                         File destFile = new File(destFolder, srcName);

  30.                         // 将数据源的文件内容复制到目的地的文件中
  31.                         copyFile(srcFile, destFile);
  32.                 }
  33.         }

  34.         private static void copyFile(File srcFile, File destFile)
  35.                         throws IOException {
  36.                 // 封装数据源
  37.                 BufferedInputStream fis = new BufferedInputStream(new FileInputStream(
  38.                                 srcFile));

  39.                 // 封装目的地
  40.                 BufferedOutputStream bos = new BufferedOutputStream(
  41.                                 new FileOutputStream(destFile));

  42.                 byte[] bys = new byte[1024];
  43.                 int len = 0;
  44.                 while ((len = fis.read(bys)) != -1) {
  45.                         bos.write(bys, 0, len);
  46.                 }

  47.                 // 释放资源
  48.                 fis.close();
  49.                 bos.close();
  50.         }
  51. }
复制代码



作者: 18671183990    时间: 2015-7-28 21:26
说的好  给个赞




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