SequenceInputStream
表示其他输入流的逻辑串联。它从输入流的有序集合开始,并从第一个输入流开始读取,直到到达文件末尾,接着从第二个输入流读取,依次类推,直到到达包含的最后一个输入流的文件末尾为止。
SequenceInputStream
(Enumeration<? extends InputStream> e)
通过记住参数来初始化新创建的 SequenceInputStream
,该参数必须是生成运行时类型为 InputStream
对象的Enumeration
型参数。
简单测试SequenceInputStream的使用:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.SequenceInputStream;
import java.util.Enumeration;
import java.util.Vector;
public class SequenceInputStreamDemo {
public static void main(String[] args) throws IOException {
//创建Vector对象实例
Vector<InputStream> v = new Vector<InputStream>();
v.add(new FileInputStream("d:/1.txt"));
v.add(new FileInputStream("d:/2.txt"));
v.add(new FileInputStream("d:/3.txt"));
//获得Enumeration对象
Enumeration<InputStream> enumeration = v.elements();
//创建SequenceInputStream对象
SequenceInputStream sis = new SequenceInputStream(enumeration);
//创建OutputStream对象
OutputStream os = new FileOutputStream("d:/4.txt");
//创建字节数组
byte[] buf = new byte[1024];
//定义一个int类型变量,用于记录读入到字节数组的总字节数
int len = 0;
while((len = sis.read(buf))!=-1){
os.write(buf, 0, len);
}
os.close();
sis.close();
}
}