java基础之IO流中的SequenceInputStream

来源:互联网 发布:网络词笔芯是谁发明 编辑:程序博客网 时间:2024/06/01 09:52
package com.j2se.io;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.SequenceInputStream;import java.util.ArrayList;import java.util.Enumeration;import java.util.Iterator;public class SequenceInputStreamDemo {public static void main(String[] args) throws Exception{//splitFileDemo();mergeFileDemo();}/** * 分割文件:分成4个部分 */private static void splitFileDemo() throws Exception{// TODO Auto-generated method stubFileInputStream fis=new FileInputStream("src/1.jpg");byte[] buffer=new byte[1024*300];int len=0,count=1;FileOutputStream fos=null;while((len=fis.read(buffer))!=-1){fos=new FileOutputStream("src/"+(count++)+".part");fos.write(buffer, 0, len);fos.close();}}/* * 合并4个碎片文件,形成一个完整的图片文件 */public static void mergeFileDemo() throws Exception{ArrayList<FileInputStream> list=new ArrayList<FileInputStream>();for(int i=1;i<=4;i++){list.add(new FileInputStream("src/"+i+".part"));}final Iterator<FileInputStream> it= list.iterator();Enumeration<FileInputStream> em=new Enumeration<FileInputStream>() {@Overridepublic FileInputStream nextElement() {// TODO Auto-generated method stubreturn it.next();}@Overridepublic boolean hasMoreElements() {// TODO Auto-generated method stubreturn it.hasNext();}}; SequenceInputStream sis=new SequenceInputStream(em);FileOutputStream fos=new FileOutputStream("src/merge.jpg");byte[] buffer=new byte[1024];int len=0;while((len=sis.read(buffer))!=-1){fos.write(buffer, 0, len);}fos.close();}}

0 0