加载中…
个人资料
Javan_章
Javan_章
  • 博客等级:
  • 博客积分:0
  • 博客访问:5,463
  • 关注人气:0
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
正文 字体大小:

java对文件的分割与合并-以mp3音频文件说明

(2014-07-26 22:45:52)
标签:

it

教育

图片

java对文件的分割与合并-以mp3音频文件说明

好久没有写博客了,记得刚开始学习java的时候,带着一种新鲜与好奇,写了两三篇关于在传智播客学习与生活的博客。想来,基础班都快结束了,而恰好在末尾阶段,做了些比较有意思的任务。当然了,带着一种对技术的兴趣与爱好。把今晚上做的东西与分析的思路,在此记录一下,以后也可以回忆一下以前在传智学习的点点滴滴。

java对文件的分割与合并-以mp3音频文件说明

分割前的文件6.53MB
执行分割和合并的效果图
java对文件的分割与合并-以mp3音频文件说明
分割的7个小文件

java对文件的分割与合并-以mp3音频文件说明
合并的文件 大小还是6.53MB

java对文件的分割与合并-以mp3音频文件说明
播放后的执行效果


下面的代码主要是由两个功能: split()merge()。分别描述如下:
split()实现的是把一个mp3文件分割成7个小的mp3文件,前面6个文件都是1M,后面个文件是分不够1M的剩余大小。

代码的分析:

1.分割方法的代码:

java对文件的分割与合并-以mp3音频文件说明
java对文件的分割与合并-以mp3音频文件说明
java对文件的分割与合并-以mp3音频文件说明


分割的时候,需要灵活设置处理1MB文件的技巧,在上面的代码中,即代码第47行位置,设置了一个变量,处理输出文件控制在1MB大小,其中1024*1024表示的是1MB文件的大小。只要把这个问题解决了,分割就可以很快完成。

2.合并方法的代码:
java对文件的分割与合并-以mp3音频文件说明
java对文件的分割与合并-以mp3音频文件说明
在合并的代码中,难点是如何构建序列流(SequenceInputStream),因为在API中,其构造方法只有两个。
java对文件的分割与合并-以mp3音频文件说明

而第二种构造方法,只能传入两个InputStream,所以应该采用第一种的构造方法。难点是在如何构造Enumeration,因为他是一个接口,其设置的泛型是继承InputStream类型。第120-131行就是解决问题的关键,创建一个局部内部类,同时设置泛型为InputStream类,然后实现其中的两个方法。其中两个方法:hasMoreElements(),nextElement()和分别Iterator迭代器的hasNext()方法,next()类似。所以实现起来就简单了,这是关键。










0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有