A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 一生一世 中级黑马   /  2012-5-2 18:16  /  2241 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

大家都知道可以用IO中的字节流可以合并文件,可是我今天下午用IO流合并了一个电影,不知道为什么把两个电影合并完以后虽然合并后的电影的容量是以前几个电影的和,但是不知道为什么电影的时间却只有原来的一部分,是不是java在合并字节流的时候有什么异常呀??下面是我改写的毕老师的代码:
import java.io.*;
import java.util.*;

class Merge{

        public static void main(String args[])throws IOException{
                //splitFile();
                merge();
        }

        public static void merge()throws IOException{
                ArrayList<FileInputStream> al = new ArrayList<FileInputStream>();

                al.add(new FileInputStream("D:\\神马都是浮云1280BD高请上.rmvb"));
                al.add(new FileInputStream("D:\\神马都是浮云1280BD高清下.rmvb"));

                final Iterator<FileInputStream> it = al.iterator();

                Enumeration<InputStream> en = new Enumeration<InputStream>(){

                        public boolean hasMoreElements(){
                                return it.hasNext();
                        }

                        public FileInputStream nextElement(){
                                return it.next();
                        }
                };

                SequenceInputStream sis = new SequenceInputStream(en);

                FileOutputStream fos = new FileOutputStream("D:\\神马都是浮云.rmvb");//合并以后的电影容量上看是上面两个电影容量之和
                                                                                                                                                        //但是为什么从时间上看 却和《神马都是浮云1280BD高请上.rmvb》的时间一样呢??
                                                                                                                                                        //还有就是为什么合并以后的电影快进的时候会很卡,还没有不合并以前的电影播放时那么的流畅呢?
                byte[] buf = new byte[1024*1024*10];
                int b = 0;

                while((b=sis.read(buf))!=-1){
                        fos.write(buf,0,b);
                        fos.flush();
                }

                sis.close();
                fos.close();

        }
}

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

1 个回复

倒序浏览
合并视频应该就是这样,只是简单的把两个文件的数据合带一起,这也和视频的编码有关,能看的也只有先传的那个数据,后进去的视频只是写进了数据,时间轴什么的都没有合并,根本接不上,所以看不了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马