1.合并流
1.java.io.SequenceInputStream:可以操作多个文件,表示其他输入流的逻辑级联
1.1 构造方法一
1.public SequenceInputStream(InputStream s1,InputStream s2)
2.代码实现:
需要:将当前项目下的BufferedReaderDemo2.java和Teacher.java
复制到D:\EE_2113\day29\code\My.java
public class SequenceInputStreamDemo{
public static void main(String[] args){
FileInputStream fis1 = new FileInputStream("BufferedReaderDemo2.java") ;
FileInputStream fis2 = new FileInputStream("Teacher.java") ;
SequenceInputStream sis = new SequenceInputStream(fis1,fis2) ;
FileOutputStream fos = new FileOutputStream("D:\\EE_2113\\day29\\code\\My.java") ;
byte[] bytes = new byte[1024] ;
int len = 0 ;
while((len=sis.read(bytes))!=-1){
fos.write(bytes,0,len);
}
fos.close();
sis.close();
}
}
1.2 构造方法二
1.public SequenceInputStream(Enumeration<? extends InputStream> e):操作两个或者更多文件
List集合中子实现类Vector<E>-->特有的迭代器遍历方式Enumeration<E> elements()
2.代码实现
public class SequenceInputStreamDemo2{
public static void main(String[] args){
Vector<InputStream> v = new Vector<>() ;
InputStream in1 = new FileInputStream("BufferedReaderDemo2.java");
InputStream in2 = new FileInputStream("SequenceInputStreamDemo.java") ;
InputStream in3 = new FileInputStream("Teacher.java") ;
v.add(in1) ;
v.add(in2) ;
v.add(in3) ;
Enumeration<InputStream> enumeration = v.elements();
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream("SequenceCopy.java")) ;
byte[] bytes = new byte[1024] ;
int len = 0 ;
while((len=sis.read(bytes))!=-1){
bos.write(bytes,0,len) ;
bos.flush();
}
bos.close();
sis.close();
}
}