java實現(xiàn)mp3合并的方法
本文實例講述了java實現(xiàn)mp3合并的方法。分享給大家供大家參考。具體實現(xiàn)方法如下:
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); // 遞歸函數(shù)
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); // 合并其實就是文件的續(xù)寫,寫成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程序設(shè)計有所幫助。
相關(guān)文章
Spring boot + mybatis + Vue.js + ElementUI 實現(xiàn)數(shù)據(jù)的增刪改查實例代碼(一)
這篇文章主要介紹了Spring boot + mybatis + Vue.js + ElementUI 實現(xiàn)數(shù)據(jù)的增刪改查實例代碼,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-05-05SpringCloud服務(wù)的發(fā)現(xiàn)與調(diào)用詳解
在Java微服務(wù)越來越火的今天。幾乎什么公司都在搞微服務(wù)。而使用的比較多的就是Spring?Cloud技術(shù)棧。今天就來研究一下Spring?Cloud中服務(wù)發(fā)現(xiàn)與調(diào)用的基本原理2022-07-07Java線程池運行狀態(tài)監(jiān)控實現(xiàn)解析
這篇文章主要介紹了Java線程池運行狀態(tài)監(jiān)控實現(xiàn)解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-10-10