java实现mp3合并的方法

作者:shichen2014 时间:2023-11-09 03:47:08 

本文实例讲述了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程序设计有所帮助。

标签:java,合并
0
投稿

猜你喜欢

  • SpringBoot结合SpringSecurity实现图形验证码功能

    2023-02-25 16:04:52
  • Unity实现倒计时组件

    2021-06-18 01:06:44
  • WebFlux 服务编排使用优势详解

    2021-11-27 07:48:45
  • synchronized背后的monitor锁实现详解

    2023-07-31 08:14:10
  • swagger如何返回map字段注释

    2023-02-22 08:56:27
  • Java字母加数字组合比较大小

    2023-02-27 15:27:52
  • 详解Flutter网络图片本地缓存的实现

    2023-08-18 19:44:43
  • Idea打包springboot项目没有.original文件解决方案

    2022-07-12 20:06:08
  • C#表达式目录树示例详解

    2021-10-01 01:52:46
  • Android使用系统相机进行拍照的步骤

    2023-10-07 16:05:05
  • c#发送请求访问外部接口的实例

    2023-05-25 17:43:30
  • C#实现简单的字符串加密

    2022-12-28 17:09:29
  • Android Handle原理(Looper,Handler和Message)三者关系案例详解

    2023-08-25 22:51:47
  • Flutter实现牛顿摆动画效果的示例代码

    2022-10-23 12:58:40
  • Java锁的升级策略 偏向锁 轻量级锁 重量级锁

    2022-11-07 00:50:17
  • 利用Java理解sql的语法(实例讲解)

    2023-02-16 06:18:06
  • RxJava之网络请求最常见的三种场景

    2023-04-29 19:49:48
  • JavaWeb中Servlet的深入讲解

    2022-03-07 21:12:36
  • Java虚拟机JVM性能优化(三):垃圾收集详解

    2021-10-16 10:38:49
  • springboot 按月分表的实现方式

    2023-11-25 00:03:47
  • asp之家 软件编程 m.aspxhome.com