- SequenceInputStream:表示其他輸入流的邏輯串聯(lián)。
- 多個(gè)源對應(yīng)一個(gè)目的辨图;就是把多個(gè)源變成一個(gè)源。
import java.io.*;
import java.util.*;
/*
需求:現(xiàn)有1.txt,2.txt,3.txt三個(gè)文件崩瓤;先要把三個(gè)文件合并到一個(gè)文件。
分析:
1踩官,先將三個(gè)文件輸入流對象一個(gè)接一個(gè)的存入Vector集合却桶。
2,再用SequenceInputStream將Vector集合中的元素整合到一個(gè)流中蔗牡,作為源颖系。
3,再聲明目的辩越,定義輸出流對象嘁扼。
4,將輸入流中的數(shù)據(jù)存到輸出流中黔攒。
5趁啸,輸入流和輸出流强缘。
*/
class sequenceDemo{
public static void main(String[] args) throws IOException{
Vector<FileInputStream> v = new Vector<FileInputStream>();
v.add(new FileInputStream("f:\\test\\1.txt"));
v.add(new FileInputStream("f:\\test\\2.txt"));
v.add(new FileInputStream("f:\\test\\3.txt"));
Enumeration<FileInputStream> en = v.elements();
SequenceInputStream sis = new SequenceInputStream(en);
FileOutputStream fos = new FileOutputStream("f:\\test\\4.txt");
byte[] buf = new byte[1024];
int len = 0;
//因?yàn)镾equenceInputStream是InputStream的子類,所以可以調(diào)用read方法不傅。
while((len=sis.read(buf)) != -1){
fos.write(buf,0,len);
}
fos.close();
sis.close();
}
}