【java编程】IO流之SequenceInputStream类合并输入流再输出

先上一张图片,大致说明一下SequenceInputStream的工作原理。。


/*思路:1.将三个流通过SequenceInputream合并成一个流
	   2.因为SequenceInputStream超过三个流对象,要用到Enumeration枚举
	   3.Enumerate枚举可以通过集合Vector的elements获取
	   4.最后,输出
  步骤:1.先创建三个FileInputStream流对象
		2.创建一个集合Vector对象,并添加三个流对象到该集合
		3.通过Vector的elements()方法获取Enumeration对象
		4.创建SequenceInputStream对象,并将Enumeration对象作为构造函数传入
		5.创建FileOutputStream将SquenceInputStream对象读取的数据输出
		6.关闭资源*/
import java.io.*;
import java.util.*;
class SequenceDemo 
{
	public static void main(String[] args)  throws IOException
	{
		//创建FileInputStream流对象
		FileInputStream fis1=new FileInputStream("a.txt");
		FileInputStream fis2=new FileInputStream("b.txt");
		FileInputStream fis3=new FileInputStream("c.txt");
		//创建Vector集合对象
		Vector<FileInputStream> vector=new Vector<FileInputStream>();
		//添加输入流对象到集合Vector里
		vector.add(fis1);
		vector.add(fis2);
		vector.add(fis3);
		//得到Enumeration对象
		Enumeration en=vector.elements();
		//创建SequenceInputStream对象,将Enumeration对象传入
		SequenceInputStream sis=new SequenceInputStream(en);
		//创建字节输出流
		FileOutputStream fos=new FileOutputStream("d.txt");
		//创建缓冲区
		byte[] buf=new byte[1024];
		int len=0;
		while((len=sis.read(buf))!=-1)
		{
			fos.write(buf,0,len);			
		}
		sis.close();
		fos.close();
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值