해당 스트림은 여러 개의 입력 스트림을 연속적으로 연결하여 하나의 스트림으로 읽는 것과 같이 처리하도록 도와준다.
//생성자
SequenceInputStream(Enumeration e) // Enumeration에 저장된 순으로 스트림 연결
SequenceInputStream(InputStream s1, InputStream s2) //두 개의 입력스트림을 하나로 연결
//사용 예시1
Vector files = new Vector();
files.add(new FileInputStream("file.001"));
files.add(new FileInputStream("file.002"));
SequenceInputStream in = new SequenceInputStream(files.elements()); //Enumeration elements() 호출
//사용 예시2
FileInputStream file1 = new FileInputStream("file.001");
FileInputStream file2 = new FileInputStream("file.002");
SequenceInputStream in = new SequenceInputStream(file1, file2); //두 개의 입력 스트림
import java.io.*;
import java.util.*;
class SequenceInputStreamEx {
public static void main(String[] args) {
Vector v = new Vector();
v.add(new FileInputStream(args[0]));
v.add(new FileInputStream(args[1]));
v.add(new FileInputStream(args[2]));
SequenceInputStream input = new SequenceInputStream(v.elements());
int data = 0;
try{
while((data = input.read()) != -1){
System.out.println(data);
}
} catch(IOException e){}
}
}
Vector를 이용할 경우 3개 이상의 InputStream을 엮을 수 있으나 Vector에 저장된 순으로 입력되기 때문에 순서에 유의해야한다.