java输入输出23:IO流(序列流)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yuming226/article/details/84500762
序列流概念

序列流可以把多个字节输入流整合成一个,从序列流中读取数据时,将从被整合的第一个流开始读完,读完一个之后继续读第二个,以此类推。

package zifu;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.SequenceInputStream;

public class Demo12_SequeceInputStream {
	public static void main(String[] args) throws IOException {
		FileInputStream fis1 = new FileInputStream("11.txt");//创建输入流对象,关联a.txt
		FileInputStream fis2 = new FileInputStream("copy.txt");//创建输入流对象,关联到b.txt
		SequenceInputStream sis = new SequenceInputStream(fis1,fis2);//将两个流整合成一个流
		FileOutputStream fos = new FileOutputStream("copy2.txt");//创建输出流对象,关联c.txt
		
		int b;
		while ((b = sis.read()) != -1) {
			fos.write(b);
		}
		sis.close();
		fos.close();
	}
}

运行结果如下:
在这里插入图片描述

序列流整合多个

整合多个:SequenceInputStream(Enumeration)

package zifu;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.SequenceInputStream;
import java.util.Enumeration;
import java.util.Vector;

public class Demo13_Test {
	public static void main(String[] args) throws IOException {
		FileInputStream fis0 = new FileInputStream("10.txt");
		FileInputStream fis1 = new FileInputStream("11.txt");
		FileInputStream fis2 = new FileInputStream("copy.txt");
		
		Vector<InputStream> v = new Vector<>();
		v.add(fis0);
		v.add(fis1);
		v.add(fis2);
		Enumeration<InputStream> en = v.elements();
		SequenceInputStream sis = new SequenceInputStream(en);
		FileOutputStream fos = new FileOutputStream("copy2.txt");
		int b;
		while ((b = sis.read()) != -1) {
			fos.write(b);
		}
		sis.close();
		fos.close();
	}
}

猜你喜欢

转载自blog.csdn.net/yuming226/article/details/84500762