序列流
SequenceInputStream ——对多个流进行合并
// 把三个文件合并层一个文件,3个文件3个流,把三个流放集合里面,
//再通过Enumeration en= Collections.enumeration方法,把集合变成美居
// 然后用SequenceInputStream 的构造方法合成一个流
@Test //需求:把seq1.txt、seq2.txt和seq3.txt等多个文件合并到一个文件seq.txt
public void demo() throws IOException{
//读---从源
FileInputStream fis1 = new FileInputStream("seq\\seq1.txt");
FileInputStream fis2 = new FileInputStream("seq\\seq2.txt");
FileInputStream fis3 = new FileInputStream("seq\\seq3.txt");
ArrayList<FileInputStream> list= new ArrayList<FileInputStream>();
list.add(fis1);
list.add(fis2);
list.add(fis3);
Enumeration<FileInputStream> en= Collections.enumeration(list);
SequenceInputStream sis = new SequenceInputStream(en);//★
//写 ---目的
FileOutputStream fos = new FileOutputStream("seq\\seq.txt");
byte[] buf= new byte[16];
int len=0;
while( (len=sis.read(buf))!=-1){
fos.write(buf, 0, len);
}
fos.close();
sis.close();
}
内存流
package cn.hncu.io.io2Demo;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import org.junit.Test;
public class ByteArraySteamDemo {
// 内存流
//这个流的作用可以是 服务器和客户器之间一个用来压缩的流
@Test
public void byteArrayStreamDemo(){
ByteArrayInputStream bin = new ByteArrayInputStream("asdasd".getBytes());
ByteArrayOutputStream bout = new ByteArrayOutputStream();
int ch=0;
while( (ch=bin.read())!=-1){
bout.write(ch);
}
System.out.println(bout.toString());
}
}