java实现mp3合并的方法

 更新时间:2014年10月29日 11:54:24   投稿:shichen2014  
这篇文章主要介绍了java实现mp3合并的方法,是Java操作多媒体文件的一个典型应用,非常具有参考借鉴价值,需要的朋友可以参考下

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

相关文章

  • Netty的Handler链调用机制及如何组织详解

    Netty的Handler链调用机制及如何组织详解

    这篇文章主要为大家介绍了Netty的Handler链调用机制及如何组织示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Java Spring @Lazy延迟注入源码案例详解

    Java Spring @Lazy延迟注入源码案例详解

    这篇文章主要介绍了Java Spring @Lazy延迟注入源码案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-09-09
  • 深入了解Maven Settings.xml文件的结构和功能

    深入了解Maven Settings.xml文件的结构和功能

    这篇文章主要为大家介绍了Maven Settings.xml文件基本结构和功能详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • jpa异常No entity found for query问题解决

    jpa异常No entity found for query问题解决

    这篇文章主要为大家介绍了jpa异常之No entity found for query的异常问题解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-03-03
  • 如何利用Spring Boot 监控 SQL 运行情况

    如何利用Spring Boot 监控 SQL 运行情况

    这篇文章主要介绍了如何利用Spring Boot监控SQL运行情况,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-07-07
  • Java19新特性虚拟线程的具体使用

    Java19新特性虚拟线程的具体使用

    Java 19 引入了虚拟线程,这是 JDK Project Loom 项目中的重要新特性,目的是简化 Java 中的并发编程,并提高线程管理的效率和性能,下面就来具体介绍下
    2024-09-09
  • 浅谈synchronized方法对非synchronized方法的影响

    浅谈synchronized方法对非synchronized方法的影响

    下面小编就为大家带来一篇浅谈synchronized方法对非synchronized方法的影响。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • mybatis一对多方式实现批量插入

    mybatis一对多方式实现批量插入

    这篇文章主要介绍了mybatis一对多方式实现批量插入,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Spring Security 使用 OncePerRequestFilter 过滤器校验登录过期、请求日志等操作

    Spring Security 使用 OncePerRequestFilter 

    OncePerRequestFilter是一个过滤器,每个请求都会执行一次;一般开发中主要是做检查是否已登录、Token是否过期和授权等操作,而每个操作都是一个过滤器,下面介绍Spring Security 使用 OncePerRequestFilter 过滤器校验登录过期、请求日志等操作方法,感兴趣的朋友一起看看吧
    2024-06-06
  • 详解SpringBoot如何自定义自己的Starter组件

    详解SpringBoot如何自定义自己的Starter组件

    这篇文章主要为大家详细介绍了在SpringBoot中如何自定义自己的Starter组件,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-03-03

最新评论