版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yuming226/article/details/84500762
序列流概念
序列流可以把多个字节输入流整合成一个,从序列流中读取数据时,将从被整合的第一个流开始读完,读完一个之后继续读第二个,以此类推。
package zifu;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.SequenceInputStream;
public class Demo12_SequeceInputStream {
public static void main(String[] args) throws IOException {
FileInputStream fis1 = new FileInputStream("11.txt");//创建输入流对象,关联a.txt
FileInputStream fis2 = new FileInputStream("copy.txt");//创建输入流对象,关联到b.txt
SequenceInputStream sis = new SequenceInputStream(fis1,fis2);//将两个流整合成一个流
FileOutputStream fos = new FileOutputStream("copy2.txt");//创建输出流对象,关联c.txt
int b;
while ((b = sis.read()) != -1) {
fos.write(b);
}
sis.close();
fos.close();
}
}
运行结果如下:
序列流整合多个
整合多个:SequenceInputStream(Enumeration)
package zifu;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.SequenceInputStream;
import java.util.Enumeration;
import java.util.Vector;
public class Demo13_Test {
public static void main(String[] args) throws IOException {
FileInputStream fis0 = new FileInputStream("10.txt");
FileInputStream fis1 = new FileInputStream("11.txt");
FileInputStream fis2 = new FileInputStream("copy.txt");
Vector<InputStream> v = new Vector<>();
v.add(fis0);
v.add(fis1);
v.add(fis2);
Enumeration<InputStream> en = v.elements();
SequenceInputStream sis = new SequenceInputStream(en);
FileOutputStream fos = new FileOutputStream("copy2.txt");
int b;
while ((b = sis.read()) != -1) {
fos.write(b);
}
sis.close();
fos.close();
}
}