一、SequenceInputStream–合并流
1.作用:合并功能(把多个流,合并成一个流)
2.构造方法:
方法1.
参数是迭代器,是Vector特有的
注:该Vector要保存的是InputStream
SequenceInputStream(Enumeration<? extends InputStream> e)
方法2.
传入两个字节输入流
SequenceInputStream(InputStream s1,InputStream s2)
例题:
public class Demo03 {
public static void main(String[] args) throws IOException {
//将三个文件写成一个文件
File f1 = new File("/Users/lanou/Desktop/tes/1.txt");
File f2 = new File("/Users/lanou/Desktop/tes/2.txt");
File f3 = new File("/Users/lanou/Desktop/tes/3.txt");
InputStream inputStream1 = new FileInputStream(f1);
InputStream inputStream2 = new FileInputStream(f2);
InputStream inputStream3 = new FileInputStream(f3);
Vector<InputStream>vector = new Vector<>();
vector.add(inputStream1);
vector.add(inputStream2);
vector.add(inputStream3);
//获取迭代器
Enumeration<InputStream> elements = vector.elements();
//构建合并源,把三个文件读到一起,
SequenceInputStream sis = new SequenceInputStream(elements);
//写入到一个文件
FileOutputStream fos = new FileOutputStream("/Users/lanou/Desktop/tes/4.txt");
byte [] bs = new byte[1024];
int len= 0;
while((len = sis.read(bs))!=-1) {
fos.write(bs);
}
fos.flush();
sis.close();
fos.close();
}
}