import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.SequenceInputStream;
import java.util.Vector;
/**
* 序列流合并文件
* @author Administrator
*
*/
public class SequenceInputStreamTest {
public static void main(String[] args) throws IOException {
//思路
//1.首先定义一个vector用于打包输入流
//那么这里为什么要用vector呢?
//因为Vector类的elements()方法的返回值刚好与SequenceInputStream的构造器的参数
//一致都是Enumeration类型
Vector<FileInputStream> vector = new Vector<FileInputStream>();
//2.定义被打包的文件,这些文件必须存在,new File 不负责建新文件
File fileA = new File("a.txt");
File fileB = new File("b.txt");
File fileC = new File("c.txt");
//3.将文件打包
vector.add(new FileInputStream(fileA));
vector.add(new FileInputStream(fileB));
vector.add(new FileInputStream(fileC));
//4.用序列流进行合并
SequenceInputStream sts = new SequenceInputStream(vector.elements());
//5.将序列流输出到一个文本上
File fileD = new File("d.txt");
FileOutputStream out = new FileOutputStream(fileD);
//自定义缓冲区
byte[] bytes = new byte[1024];
int count = 0;
while((count = sts.read(bytes)) != -1){
out.write(bytes, 0, count);
}
//一定要记得关闭流
sts.close();
out.close();
}
}