A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© hero_king 中级黑马   /  2016-6-1 22:27  /  270 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

这里使用合并流的第二种构造方法,传入一个Enumeration<FileInputStream>对象:
具体方法如下:
  1. import java.io.BufferedOutputStream;
  2. import java.io.FileInputStream;
  3. import java.io.FileOutputStream;
  4. import java.io.IOException;
  5. import java.io.SequenceInputStream;
  6. import java.util.Enumeration;
  7. import java.util.Vector;

  8. /*
  9. * 将多个文件的内容复制到一个文件中:
  10. * 使用合并流、Vector、Enumeration实现
  11. */
  12. public class Demo6 {
  13.         public static void main(String[] args) throws IOException {
  14.                 // 创建Vector集合
  15.                 Vector<FileInputStream> v = new Vector<FileInputStream>();
  16.                 FileInputStream f1 = new FileInputStream("F:\\path变量备份.txt");
  17.                 FileInputStream f2 = new FileInputStream("F:\\path变量备份.txt");
  18.                 FileInputStream f3 = new FileInputStream("F:\\path变量备份.txt");
  19.                 FileInputStream f4 = new FileInputStream("F:\\path变量备份.txt");
  20.                 v.add(f1);
  21.                 v.add(f2);
  22.                 v.add(f3);
  23.                 v.add(f4);
  24.                 Enumeration<FileInputStream> e = v.elements();
  25.                 // 创建合并流对象
  26.                 SequenceInputStream sis = new SequenceInputStream(e);
  27.                 BufferedOutputStream bos = new BufferedOutputStream(
  28.                                 new FileOutputStream("合并后2.txt"));
  29.                 byte[] bys = new byte[1024];
  30.                 int len = 0;
  31.                 while ((len = sis.read(bys)) != -1) {
  32.                         bos.write(bys, 0, len);
  33.                 }
  34.                 sis.close();
  35.                 bos.close();
  36.         }
  37. }
复制代码

您需要登录后才可以回帖 登录 | 加入黑马