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 Test19 15 { 16 public static void main(String[] args) throws Exception 17 { 18 doSequence(); 19 } 20 private static void doSequence() throws Exception 21 { 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 }