IO流——合并流

版权声明:作者:changshuchao https://blog.csdn.net/changshuchao/article/details/89097477

合并流:SequenceInputStream

目的:把多个流合并为一个流。

接受InputStream的子类。

下面示例把普通流、缓冲字节流、内存流合并成一个流,示例代码如下:

public class TestSequence {

    public static void main(String[] args) throws IOException {
        testSequenceInputStream();
    }

    public static void testSequenceInputStream() throws IOException {

        File file1 = new File("io"+File.separator+"source.txt");
        File file2 = new File("io"+File.separator+"sourceWriter.txt");

        /*普通流*/
        InputStream in1 = new FileInputStream(file1);

        /*缓冲流*/
        BufferedInputStream in2 = new BufferedInputStream(new FileInputStream(file2));

        /*内存流*/
        byte[] data = "hahaha".getBytes();
        ByteArrayInputStream in3 = new ByteArrayInputStream(data);


        /*合并流,将上面三个流合并(合并流中不能放转换流,因为转换流是字符流,这里面的参数只能是字节流)*/
        SequenceInputStream unionStream = new SequenceInputStream(in1,new SequenceInputStream(in2,in3));
        byte[] result = new byte[10];
        int len;
        while((len = unionStream.read(result))!=-1){
            System.out.print(new String(result,0,len));
        }

        in1.close();
        in2.close();
        in3.close();
        unionStream.close();
    }
}

猜你喜欢

转载自blog.csdn.net/changshuchao/article/details/89097477