zoukankan      html  css  js  c++  java
  • Java IO流-合并流

    2017-11-05 20:15:28

    • SequenceinputStream

    SequenceinputStream:SequenceInputStream 表示其他输入流的逻辑串联。它从输入流的有序集合开始,并从第一个输入流开始读取,直到到达文件末尾,接着从第二个输入流读取,依次类推,直到到达包含的最后一个输入流的文件末尾为止。

    *构造方法

    *常用方法

    public class Demo6 {
    
        public static void main(String[] args) throws IOException {
            InputStream in1 = new FileInputStream("E:/text.txt");
            InputStream in2 = new FileInputStream("E:/text2.txt");
    
            SequenceInputStream sis = new SequenceInputStream(in1, in2);
            BufferedOutputStream bs = new BufferedOutputStream(new FileOutputStream("" +
                    "E:/copy.txt"));
    
            byte[] bys = new byte[1024];
            int len = 0;
            while ((len = sis.read(bys)) != -1) {
                bs.write(bys, 0, len);
            }
    
            bs.close();
            sis.close();
        }
    
    }
    

    如果超过两个该怎么办呢?其实该类还提供了另一个构造方法:public SequenceInputStream(Enumeration<? extends InputStream> e)

    这里的Enumeration枚举器是Vector类的一个方法的返回值:public Enumeration<E> elements()

    剩下的就非常简单了:

    public class Demo6 {
    
        public static void main(String[] args) throws IOException {
            Vector<InputStream> v = new Vector<>();
            InputStream in1 = new FileInputStream("E:/text.txt");
            InputStream in2 = new FileInputStream("E:/text2.txt");
            InputStream in3 = new FileInputStream("E:/text3.txt");
            
            v.add(in1);
            v.add(in2);
            v.add(in3);
    
            Enumeration<InputStream> enumeration = v.elements();
    
            SequenceInputStream sis = new SequenceInputStream(enumeration);
            BufferedOutputStream bs = new BufferedOutputStream(new FileOutputStream("" +
                    "E:/copy.txt"));
    
            byte[] bys = new byte[1024];
            int len = 0;
            while ((len = sis.read(bys)) != -1) {
                bs.write(bys, 0, len);
            }
    
            bs.close();
            sis.close();
        }
    
    }
    
  • 相关阅读:
    Hibernate学习之缓存机制
    Hibernate学习之hibernate状态
    Ajax学习之小结
    Hibernate学习之hibernate执行顺序
    Svn入门
    Svn服务启动的两种方式
    Eclipse安装Svn插件
    一种给力的带背景的超链接的写法
    转载:IE下div使用margin:0px auto不居中的原因
    github上的Lua in Erlang
  • 原文地址:https://www.cnblogs.com/hyserendipity/p/7788644.html
Copyright © 2011-2022 走看看