黑马程序员技术交流社区

标题: 分享一个自写的小程序:用于抽取一个目录下多个文件夹... [打印本页]

作者: 华谦    时间: 2014-9-22 17:54
标题: 分享一个自写的小程序:用于抽取一个目录下多个文件夹...
下载了高新技术的视频后,发现每个视频都有文件夹,每次打开好麻烦,于是想着用所学的知识来把这些全部视频抽取到一个指定文件夹下,
还请指教:
  1. /*
  2. 此方法用于抽取一个目录下多个文件夹下的相同后缀名的文件
  3. */
  4. import java.io.*;
  5. class  TakeFile
  6. {
  7.         public static void main(String[] args) throws Exception
  8.         {
  9.                 //指定要抽取的文件夹
  10.                 File file = new File("d:\\java高新技术");

  11.                 getFile(file);
  12.         }
  13.         public static void getFile(File Dir)throws Exception
  14.         {
  15.                 //FileOutputStream fos = new FileOutStream(file);
  16.                 File[] files = Dir.listFiles();
  17.                 for(File file : files)
  18.                 {
  19.                         if(file.isFile())
  20.                         {
  21.                                 if(file.getName().endsWith(".avi"))
  22.                                 {
  23.                                         FileInputStream Data = new FileInputStream(file);

  24.                                         //将文件写到指定目录
  25.                                         FileOutputStream fos = new FileOutputStream("d:\\java高新技术抽取\\"+file.getName());

  26.                                         byte[] by = new byte[1024];
  27.                                         int len = 0;
  28.                                         while((len = Data.read(by))!=-1)
  29.                                         {
  30.                                                 fos.write(by,0,len);
  31.                                         }
  32.                                         Data.close();
  33.                                         fos.close();

  34.                                         System.out.println(file.getName()+"抽取成功");
  35.                                 }
  36.                         }
  37.                         else
  38.                         {
  39.                                 getFile(file);
  40.                         }
  41.                 }
  42.        
  43.         }
  44. }
复制代码




作者: hike_2008    时间: 2014-9-22 18:03
偷偷告诉楼主一个更厉害的方法 ,
作者: 华谦    时间: 2014-9-22 18:46
hike_2008 发表于 2014-9-22 18:03
偷偷告诉楼主一个更厉害的方法 ,

看来是高手:lol
作者: 陈兆辉    时间: 2014-9-23 10:31
只看到销魂的头像……
作者: Huberry    时间: 2014-9-23 10:52
关于改善效率:
1、建议使用缓冲技术,并且把流放在for循环外面初始化
2、byte数组可以设置大一点,1K大小的数组对于复制大文件效率方面还是很拖后腿的
作者: Aaron_H    时间: 2014-9-23 22:08
楼主,把目的文件夹当做抽出来做参数吧,以后更换文件夹就不用该代码了
作者: 华谦    时间: 2014-9-23 22:35
Aaron_H 发表于 2014-9-23 22:08
楼主,把目的文件夹当做抽出来做参数吧,以后更换文件夹就不用该代码了

恩,也对,当时没想太多,只是为了解决自己打开时候的麻烦




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