java 如何使用PipedInputStream和PipedOutputStream

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 如何使用PipedInputStream和PipedOutputStream相关的知识,希望对你有一定的参考价值。

import com.google.common.io.ByteStreams;

import java.io.IOException;
import java.io.InputStream;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;

public class PipedInputOutputStreams
{
    public static void main(String[] args)
    {
        try
        {
            final PipedOutputStream pos = new PipedOutputStream();
            final PipedInputStream pis = new PipedInputStream(pos);
            final InputStream is = PipedInputOutputStreams.class.getClassLoader().getResourceAsStream("logback.xml");
            final Thread t = new Thread(new Runnable()
            {
                @Override
                public void run()
                {
                    try { ByteStreams.copy(is, pos); }
                    catch (IOException e) { throw new RuntimeException(e); }
                    finally
                    {
                        try { is.close(); } catch (final IOException e) { System.err.println(e.getMessage()); }
                        try { pos.close(); } catch (final IOException e) { System.err.println(e.getMessage()); }
                    }
                }
            });
            t.start();
            ByteStreams.copy(pis, System.out);
            pis.close();
            t.join();
        }
        catch (IOException | InterruptedException e) { throw new RuntimeException(e); }
    }
}

以上是关于java 如何使用PipedInputStream和PipedOutputStream的主要内容,如果未能解决你的问题,请参考以下文章

PipedInputStream - 如何避免“java.io.IOException:Pipe broken”

Java IO PipedInputStream 和 PipedOutputStream

为啥没有更多的 Java 代码使用 PipedInputStream / PipedOutputStream?

使用 PipedInputStream java 写入结束死异常

java.io.PipedInputStream

Java 管道PipedInputStream PipedOutStream PipedReader PipedWriter