SequenceInputStream合并流

本文深入探讨了Java中SequenceInputStream的使用方法,展示了如何通过枚举和指定多个输入流来创建SequenceInputStream,提供了两个实例,分别演示了从多个文件读取数据并将其合并到一个文件中的过程。


   

SequenceInputStream

public SequenceInputStream(Enumeration<? extends InputStream> e)
通过记住参数来初始化新创建的 SequenceInputStream,该参数必须是生成运行时类型为 InputStream 对象的 Enumeration 型参数。将按顺序读取由该枚举生成的输入流,以提供从此 SequenceInputStream 读取的字节。在用尽枚举中的每个输入流之后,将通过调用该流的 close 方法将其关闭。

参数:
e - 输入流的一个枚举。
另请参见:
Enumeration

SequenceInputStream

public SequenceInputStream(InputStream s1,
                           InputStream s2)
通过记住这两个参数来初始化新创建的 SequenceInputStream(将按顺序读取这两个参数,先读取 s1,然后读取 s2),以提供从此 SequenceInputStream 读取的字节。

参数:
s1 - 要读取的第一个输入流。
s2 - 要读取的第二个输入流。

下面是两个例子

例子1:


       
  1. import java.io.*;
  2. import java.util.*;
  3. class SequenceDemo1
  4. {
  5. public static void main(String[] args)throws IOException
  6. {
  7. Vector<FileInputStream> v = new Vector<FileInputStream>();
  8. v.add( new FileInputStream( "c:\\1.txt"));
  9. v.add( new FileInputStream( "c:\\2.txt"));
  10. v.add( new FileInputStream( "c:\\3.txt"));
  11. Enumeration<FileInputStream> en = v.elements();
  12. SequenceInputStream sis = new SequenceInputStream(en);
  13. FileOutputStream fos = new FileOutputStream( "c:\\4.txt");
  14. byte[] buf = new byte[ 1024];
  15. int len = 0;
  16. while((len=sis.read(buf))!=- 1)
  17. {
  18. fos.write(buf, 0,len);
  19. }
  20. fos.close();
  21. sis.close();
  22. }
  23. }


例子2


       
  1. import java.io.*;
  2. import java.util.*;
  3. class SequenceDemo2
  4. {
  5. public static void main(String[] args)throws IOException
  6. {
  7. InputStream is1 = null;
  8. InputStream is2 = null;
  9. OutputStream os = null;
  10. SequenceInputStream sis = new null;
  11. is1 = new FileInputStream( "d:"+File.separator+ "a.txt");
  12. is2 = new FileInputStream( "d:"+File.separator+ "b.txt");
  13. os = new FileOutputStream( "d:"+File.separator+ "ab.txt");
  14. sis = new SequenceInputStream(is1,is2);
  15. int temp = 0;
  16. while((temp)=sis.read()!=- 1)
  17. {
  18. os.write(temp);
  19. }
  20. sis.close();
  21. is1.close();
  22. is2.close();
  23. os.close();
  24. }
  25. }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值