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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 Kevin.Kang 于 2015-7-28 17:08 编辑
  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.FilenameFilter;
  8. import java.io.IOException;


  9. /*
  10. * 需求:复制指定文件夹下的指定格式的文件并修改格式。
  11. *                 D:\T文件夹中的.java格式文件复制到D:\K文件夹并改为.avi格式
  12. */
  13. public class Copy2 {
  14.         public static void main(String[] args) throws IOException {
  15.                 // 封装数据源
  16.                 File srcFolder = new File("D:\\T");
  17.                 // 封装目的地
  18.                 File destFolder = new File("D:\\K");
  19.                
  20.                 // 如果目的地文件夹不存在就创建一个
  21.                 if(!destFolder.exists())
  22.                 {
  23.                         destFolder.mkdir();
  24.                 }
  25.                
  26.                 // 利用文件过滤器把.java文件都存放到File对象数组中
  27.                 File[] fileArray = srcFolder.listFiles(new FilenameFilter() {
  28.                         @Override
  29.                         public boolean accept(File dir, String name) {
  30.                                 return new File(dir,name).isFile() && name.endsWith(".java");
  31.                         }
  32.                 });

  33.                 // 遍历每一个File对象
  34.                 for(File srcFile : fileArray)
  35.                 {
  36.                         // 获取每个File对象的名字并把.java改为.avi。然后和目的地文件组合成一个目的文件
  37.                         File destFile = new File(destFolder, srcFile.getName().replace(
  38.                                         ".java", ".avi"));

  39.                         // 把数据源文件的内容复制到目的文件
  40.                         copyFile(srcFile, destFile);
  41.                 }
  42.         }

  43.         private static void copyFile(File srcFile, File destFile)
  44.                         throws IOException {
  45.                 BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
  46.                                 srcFile));
  47.                 BufferedOutputStream bos = new BufferedOutputStream(
  48.                                 new FileOutputStream(destFile));

  49.                 byte[] bys = new byte[1024];
  50.                 int len = 0;
  51.                 while ((len = bis.read(bys)) != -1) {
  52.                         bos.write(bys, 0, len);
  53.                 }
  54.                 // 注意释放资源,不释放资源数据就进入不到目的地文件中去
  55.                 bis.close();
  56.                 bos.close();
  57.         }
  58. }
复制代码


0 个回复

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