SequenceInputStream 用法.

9/6/2015来源:Java教程人气:2371

SequenceInputStream 用法.
 1 package test; 2  3 /** 4  * SequenceInputStream合并流,将与之相连接的流集组合成一个输入 流并从第一个输入流开始读取, 直到到达文件末尾,接着从第二个输入流读取,依次类推,直到到达 包含的最后一个输入流的文件末 尾为止。 合并流的作用是将多个源合并合一个源。 可接收枚举类所封闭的多个字节流对象。 5  */ 6 import java.io.BufferedOutputStream; 7 import java.io.FileInputStream; 8 import java.io.FileOutputStream; 9 import java.io.InputStream;10 import java.io.SequenceInputStream;11 import java.util.Enumeration;12 import java.util.Vector;13 14 public class Test1915 {16     public static void main(String[] args) throws Exception17     {18         doSequence();19     }20     PRivate static void doSequence() throws Exception21     {22         Vector<InputStream> vector = new Vector<InputStream>();23         vector.addElement(new FileInputStream("D:/text1.txt"));24         vector.addElement(new FileInputStream("D:/text2.txt"));25         vector.addElement(new FileInputStream("D:/text3.txt"));26         Enumeration<InputStream> e = vector.elements();27         SequenceInputStream sis = new SequenceInputStream(e);28         BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("D:/text4.txt"));29         int len = 0;30         for (byte[] buf = new byte[1024*1024]; (len = sis.read(buf)) != -1;)31         {32             bos.write(buf, 0, len);33             bos.flush();34         }35         sis.close(); //这个相当于 3个 fis的close();36         bos.close();37     }38 }