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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. //需求:讲一个包含多级目录的文件夹下的所有的avi文件复制到指定的目录,并且改名.MP4
  2. package StreamTest;

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

  9. public class FileCopyAndRename {
  10.         public static void main(String[] args) throws IOException {
  11.                 // 思路一,先改名,再复制
  12.                 File src = new File("f:\\");
  13.                 File dest = new File("D:\\video\\");
  14.                 if(!dest.exists()){
  15.                         dest.mkdir();
  16.                 }
  17.                 diGuiFiles(src, dest);
  18.         }

  19.         public static void diGuiFiles(File src, File dest) throws IOException {
  20.                 if (src != null) {
  21.                         // 获取目录下所有的文件传入到一个文件数组
  22.                         File[] filelist = src.listFiles();
  23.                         if (filelist != null) {
  24.                                 // 遍历并且判断是文件夹还是文件。
  25.                                 for (File file : filelist) {
  26.                                         if (file.isDirectory()) {
  27.                                                 diGuiFiles(file, dest);
  28.                                         } else {
  29.                                                 String name = file.getName();
  30.                                                 if (name.endsWith(".avi")) {
  31.                                                         File newFile = new File(dest, name.replace(".avi", ".mp4"));
  32.                                                         copys(file, newFile);
  33.                                                 }
  34.                                         }
  35.                                 }
  36.                         }
  37.                 }
  38.         }

  39.         // 字节缓冲流,复制文件
  40.         public static void copys(File src, File dest) throws IOException {
  41.                 BufferedInputStream bis = new BufferedInputStream(new FileInputStream(src));
  42.                 BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(dest));
  43.                 byte[] bys = new byte[1024];
  44.                 int len = 0;
  45.                 while ((len = bis.read(bys)) != -1) {
  46.                         bos.write(bys, 0, len);
  47.                 }
  48.                 bos.close();
  49.                 bis.close();
  50.         }
  51. }
复制代码


这个大家可以改着玩玩

2 个回复

倒序浏览
很不错  赞一个
回复 使用道具 举报
貌似能看懂又貌似看不懂
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马