多个碎片的合并

来源:互联网 发布:2017java工程师待遇 编辑:程序博客网 时间:2024/05/16 19:47
 

多个碎片的合并

SecuenceInputStream【序列流,两个流的合并】 sic=new SecuenceInputStream(fis1,fis2);

【多个流的合并】SecuenceInputStream【枚举器对象】 sic=new SecuenceInputStream(Enumeration<InputStream> en);

1、用向量对象存放集合

Vector <FileInputStream> v=new Vector <FileInputStream>();

For(int i=1;i<=4;i++){

        v.add(“new FileInputStream(“res/”+i+”.part”)”);

}

SequenceInputStream sis=new SequenceInputStream(v.elements());

FileOutputStream fos=new FileOutputStream(“1.mp3”);

Byte[] buf=new byte[1024*4];

Int len=0;

While((len=sis.read(buf))!=-1){

        Fos.write(bus,0,len);

}

2、因为要提高效率所以用ArrayList

ArrayList<FileInputStream> alist=new ArrayList<FileInputStream>();

For(int i=1;i<=6;i++){

        Alist.add(new FileInputStream(i+”.part”));

}

Final Iterator【接口】 <FileInputStream> it【迭代器对象】=new alist.iterator();

Class MyEnum implements Enumeration<FileInputStream>{

        public boolean hasMoreElements(){

               return it.hasNext();

}

public FileInputStream nextElements(){

       return it..next();

}

MyEnum en=new MyEnum;

SequenceInputStream sis=new SequenceInputStream(en);

FileOutputStream fos=new FileOutputStream(“1.mp3”);

Byte[] buf=new byte[1024*4];

Int len=0;

While((len=sis.read(buf))!=-1){

        Fos.write(bus,0,len);

}

}

原创粉丝点击