序列流(集合流) * 把n个流合并在一起读取

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

/**
 * 序列流(集合流)
 * 把n个流合并在一起读取
 * @author jiaxutianhuo
 *
 */
public class E {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		try {
			//第一个文件流
			FileInputStream fis1=new FileInputStream("F:/iotest/ddt2.txt");
			//第二个文件流
			FileInputStream fis2=new FileInputStream("F:/iotest/ddt3.txt");
			//合并到序列流中。
			SequenceInputStream sis=new SequenceInputStream(fis1, fis2);
			byte[] b=new byte[1024];
			int off=0;
			int length=fis1.available()+fis2.available();
			int i;
			//一次性读取。由于读取一个文件流之后,会暂停,所以要写while循环。
			while ((i=sis.read(b,off,length))!=-1) {
				off+=i;
				System.out.println(off);
			}
			
			System.out.println(new String(b));
			sis.close();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}

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

/**
 * 序列流(集合流)
 * 把n个流合并在一起读取
 * @author Administrator
 *
 */
public class Ch07 {
	
	public static void main(String[] args) {
		
		try {
			//第一个文件流
			FileInputStream fis1=new FileInputStream("F:/iotest/ddt2.txt");
			//第二个文件流
			FileInputStream fis2=new FileInputStream("F:/iotest/ddt3.txt");
			//合并到序列流中
			SequenceInputStream sis=new SequenceInputStream(fis1, fis2);
			//方式1
//			//临时存放数据的数组
//			int len =fis1.available()+fis2.available();
//			byte[] b=new byte[2*len+1];
//			//把每一次读取到的临时数据存放如sb中
			StringBuffer sb=new StringBuffer();
//			//一次性读取所有的内容
//			int off=0;
//			int i=0;
//			while((i=sis.read(b,off,len))!=-1) { 
				sb.append();
//				off+=i;
//			}
//			System.out.println(new String(b));
			
			//方式2
			byte[] b=new byte[2];
//			StringBuffer sb=new StringBuffer();
//			int i=0;
			while(sis.read(b)!=-1) {
				System.out.print(new String(b));
//				sb.append(new String(b));
			}
//			System.out.println(sb.toString());
			sis.close();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值