合并mp3, vector,Enumeration,SequenceInputStream,FileFilter,匿名内部类.

 1 package test;
 2 
 3 import java.io.*;
 4 import java.util.*;
 5 
 6 public class Test20
 7 {
 8     public static void main(String[] args) throws Exception
 9     {
10         // 从给定目录 搜索MP3
11         File dir = new File("D:/aaa");
12         List<File> list = new ArrayList<File>();
13         FileFilter filefilter = new FileFilter()
14         {
15             public boolean accept(File pathname)
16             {
17                 if (pathname.getName().endsWith(".mp3"))
18                     return true;
19                 if (pathname.isDirectory())
20                     return true;
21                 else
22                     return false;
23             }
24         };
25         method(dir.listFiles(filefilter), list, filefilter);//list里装mp3
26         doSequence(list);//合并 MP3
27     }
28     private static void doSequence(List<File> list) throws Exception
29     {
30         Vector<InputStream> vector = new Vector<InputStream>();
31         for (File f : list)
32         {
33             vector.addElement(new FileInputStream(f));
34         }
35         Enumeration<InputStream> e = vector.elements();
36         SequenceInputStream sis = new SequenceInputStream(e);
37         BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("D:/hebing.mp3"));
38         int len = 0;
39         for (byte[] buf = new byte[1024 * 1024]; (len = sis.read(buf)) != -1;)
40         {
41             bos.write(buf, 0, len);
42             bos.flush();
43         }
44         sis.close(); // 这个相当于 3个 fis的close();
45         bos.close();
46     }
47     public static void method(File[] files, List<File> list, FileFilter filefilter)
48     {
49         for (File f : files)
50         {
51             if (f.isDirectory())
52                 method(f.listFiles(filefilter), list, filefilter);
53             else
54                 list.add(f);
55         }
56     }
57 }

 

转载于:https://www.cnblogs.com/stone1022/p/4050759.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值