Java合并流使用介绍

java.lang.Object
  extended by java.io.InputStream
      extended by java.io.SequenceInputStream
合并流,顾名思义,将两个或者多个输入流合并成一个。

构造方法:

SequenceInputStream(Enumeration<? extends InputStream> e)
          通过记住参数来初始化新创建的 SequenceInputStream,该参数必须是生成运行时类型为 InputStream 对象的 Enumeration 型参数。
SequenceInputStream(InputStream s1, InputStream s2)
          通过记住这两个参数来初始化新创建的 SequenceInputStream(将按顺序读取这两个参数,先读取 s1,然后读取 s2),以提供从此 SequenceInputStream 读取的字节。

常用方法:

 intavailable()
          返回不受阻塞地从当前底层输入流读取(或跳过)的字节数的估计值,方法是通过下一次调用当前底层输入流的方法。
 voidclose()
          关闭此输入流并释放与此流关联的所有系统资源。
 intread()
          从此输入流中读取下一个数据字节。
 intread(byte[] b, int off, int len)
          将最多 len 个数据字节从此输入流读入 byte 数组。

示例:



import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.SequenceInputStream;


public class SequenceInputStreamTest {




public static void main(String[] args) {
InputStream is1 = null;
InputStream is2 = null;

OutputStream os = null;

SequenceInputStream sis = null;

try {
is1 = new FileInputStream(new File("E:\\aa.txt"));
is2 = new FileInputStream(new File("E:\\bb.txt"));

sis = new SequenceInputStream(is1,is2);

os = new FileOutputStream(new File("E:\\cc.txt"));

int tmp = 0 ;
while((tmp =sis.read())!=-1){
os.write(tmp);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
 try {
 // 关闭合并流  
if(sis != null){
  sis.close();
}
if(is1 != null){
is1.close();   // 关闭输入流1`  
}
if(is2 != null){
  is2.close();   // 关闭输入流2  
}
if(os != null){
  os.close();    // 关闭输出流  
}

 
 
} catch (IOException e) {

e.printStackTrace();
}  
      
}

}
}


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值