java实现mp3合并的方法
本文实例讲述了java实现mp3合并的方法。分享给大家供大家参考。具体实现方法如下:
package test;
import java.io.*;
import java.util.*;
public class test6
{
public static void main(string[] args) throws exception
{
string s = "d:/out.mp3"; // 输出目录 & 文件名
list<string> list = new arraylist<string>();
file dir = new file("d:/aaa"); // 要遍历的目录, 用递归拿文件,文件太多就完蛋.
recursion(dir.listfiles(), list); // 递归函数
string[] ss = new string[list.size()];
for (int i = 0; i < ss.length; i++)
{
ss[i] = list.get(i);
}
system.out.println();
combine(s, ss);
}
public static void recursion(file[] fs, list<string> list) // 递归得所有子目录的.mp3文件.
{
for (file f : fs)
{
if (f.isdirectory())
{
recursion(f.listfiles(), list);
}
else
{
if (f.getname().endswith(".mp3"))
{
list.add(f.getabsolutepath());
}
}
}
}
private static boolean combine(string outfile, string[] infiles) throws exception
{
file out = new file(outfile);
file[] files = new file[infiles.length];
for (int i = 0; i < files.length; i++)
{
files[i] = new file(infiles[i]);
}
fileinputstream fis = null;
fileoutputstream fos = new fileoutputstream(outfile, true); // 合并其实就是文件的续写,写成true
for (int i = 0; i < files.length; i++)
{
fis = new fileinputstream(files[i]);
int len = 0;
for (byte[] buf = new byte[1024 * 1024]; (len = fis.read(buf)) != -1;)
{
fos.write(buf, 0, len);
}
}
fis.close();
fos.close();
return true;
}
}
希望本文所述对大家的java程序设计有所帮助。