SequenceInputStream合并流的使用

SequenceInputStream会将与之相连接的流集组合成一个输入流并从第一个输入流开始读取,直到到达文件末尾,接着从第二个输入流读取,依次类推,直到到达包含的最后一个输入流的文件末 尾为止。 合并流的作用是将多个源合并合一个源。

其可接收枚举类所封闭的多个字节流对象。


 public class SequenceInputStreamDemo {   

  /**   * @param args   

   *   SequenceInputStream合并流,将与之相连接的流集组合成一个输入流并从第一个输入流开始读取,   

   *   直到到达文件末尾,接着从第二个输入流读取,依次类推,直到到达包含的最后一个输入流的文件末    

   *   尾为止。 合并流的作用是将多个源合并合一个源。   

   *   可接收枚举类所封闭的多个字节流对象。    

 */  

  public static void main(String[] args) {    

   doSequence();     } 

  private static void doSequence() {     //创建一个合并流的对象   

  SequenceInputStream sis = null;    //创建输出流。   

  BufferedOutputStream bos = null;    

 try {       //构建流集合。     

 Vector<FileInputStream> vector = new Vector<FileInputStream>();   

  vector.addElement(new FileInputStream("c:\text1.txt"));    

  vector.addElement(new FileInputStream("c:\text2.txt"));   

 vector.addElement(new FileInputStream("c:\text3.txt"));    

  Enumeration<InputStream> e = vector.elements();     

     sis = new SequenceInputStream(e); 

 bos = new BufferedOutputStream( new FileOutputStream("c:\text4.txt"));   //读写数据             byte[] buf = new byte[1024];   

  int len = 0;  

  while ((len = sis.read(buf)) != -1) {   

  bos.write(buf, 0, len);    

  bos.flush();     }     } 

catch (FileNotFoundException e1) {     

 e1.printStackTrace();   } 

catch (IOException e1) {      

 e1.printStackTrace();    }

 finally {     

 try {     

 if (sis != null)  

     sis.close();     }

 catch (IOException e) {   

     e.printStackTrace();      }     

 try {   

if (bos != null) 

   bos.close();     } 

catch (IOException e) {    

  e.printStackTrace();   

 }     }     }  }  


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值