SequenceInputStream
SequenceInputStream extends InputStream

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

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

方法:
void close() 关闭此输入流并释放与此流关联的所有系统资源。
int read() 从此输入流中读取下一个数据字节。
int read(byte[] b, int off, int len) 将最多 len 个数据字节从此输入流读入 byte 数组。

    // 需求:把Test.java和test.txt的内容复制到Test3.java中

        InputStream s1 = new FileInputStream("Test.java");
        InputStream s2 = new FileInputStream("test.txt");
        SequenceInputStream sis = new SequenceInputStream(s1, s2);
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("Test3.java"));

        byte[] bys = new byte[1024];
        int len = 0;
        while ((len = sis.read(bys)) != -1) {
            bos.write(bys, 0, len);
        }

        bos.close();
        sis.close();
Vector<InputStream> vector = new Vector<InputStream>();

        InputStream s1 = new FileInputStream("Test.java");
        InputStream s2 = new FileInputStream("Test.txt");
        InputStream s3 = new FileInputStream("Test3.java");
        vector.add(s1);
        vector.add(s2);
        vector.add(s3);

        Enumeration<InputStream> enumeration = vector.elements();
        //SequenceInputStream(Enumeration< ? extends InputStream> e) 
        //通过记住参数来初始化新创建的 SequenceInputStream,该参数必须是生成运行时类型为 InputStream 对象的 Enumeration 型参数。
        SequenceInputStream sequence = new SequenceInputStream(enumeration);
        //BufferedOutputStream 写操作
        BufferedOutputStream bos = new BufferedOutputStream( new FileOutputStream("Test4.java"));

        byte[] bys = new byte[1024];
        int len = 0;
        while ((len = sequence.read(bys)) != -1) {
            bos.write(bys, 0, len);
        }

        bos.close();
        sequence.close();
    }
posted on 2017-04-06 11:37  2637282556  阅读(112)  评论(0编辑  收藏  举报