序列流
- 1.什么是序列流
- 序列流可以把多个字节输入流整合成一个,从序列流中读取数据时,将从被整合的第一个流开始读,读完一个之后继续读第二个,以此类推。
- 2.使用方式
-
整合两个输入流:SequenceInputStream(InputStream, InputStream)
FileInputStream fis1 = new FileInputStream("a.txt"); //创建输入流对象,关联a.txt FileInputStream fis2 = new FileInputStream("b.txt"); //创建输入流对象,关联b.txt SequenceInputStream sis = new SequenceInputStream(fis1, fis2);//将两个流整合成一个流 FileOutputStream fos = new FileOutputStream("c.txt"); //创建输出流对象,关联c.txt int b; while((b = sis.read()) != -1) { //用整合后的读 fos.write(b); //写到指定文件上 } sis.close(); fos.close();
-
package com.heima.otherio;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.SequenceInputStream;
import java.util.Enumeration;
import java.util.Vector;
public class Demo01_SequenceInputStream {
/**
* @param args
* 整合两个输入流
* SequenceInputStream(InputStream s1, InputStream s2)
* @throws IOException
*/
public static void main(String[] args) throws IOException {
//demo1();
FileInputStream fis1 = new FileInputStream("a.txt");
FileInputStream fis2 = new FileInputStream("b.txt");
SequenceInputStream sis = new SequenceInputStream(fis1, fis2);
FileOutputStream fos = new FileOutputStream("c.txt");
int b;
while((b = sis.read()) != -1) {
fos.write(b);
}
sis.close(); //sis在关闭的时候,会将构造方法中传入的流对象也都关闭
fos.close();
}
public static void demo1() throws FileNotFoundException, IOException {
FileInputStream fis1 = new FileInputStream("a.txt"); //创建字节输入流关联a.txt
FileOutputStream fos = new FileOutputStream("c.txt"); //创建字节输出流关联c.txt
int b1;
while((b1 = fis1.read()) != -1) { //不断的在a.txt上读取字节
fos.write(b1); //将读到的字节写到c.txt上
}
fis1.close(); //关闭字节输入流
FileInputStream fis2 = new FileInputStream("b.txt");
int b2;
while((b2 = fis2.read()) != -1) {
fos.write(b2);
}
fis2.close();
fos.close();
}
}