Module  java.base
软件包  java.io

Class PipedOutputStream

  • All Implemented Interfaces:
    CloseableFlushableAutoCloseable


    public class PipedOutputStream
    extends OutputStream
    管道输出流可以连接到管道输入流以创建通信管道。 管道输出流是管道的发送端。 通常,数据由一个线程写入一个PipedOutputStream对象,数据由其他线程从连接的PipedInputStream读取。 不建议尝试从单个线程使用这两个对象,因为它可能会使线程死锁。 如果正在从连接的管道输入流读取数据字节的线程不再存活,则该管道被称为broken
    从以下版本开始:
    1.0
    另请参见:
    PipedInputStream
    • 方法详细信息

      • connect

        public void connect​(PipedInputStream snk)
                     throws IOException
        将此管道输出流连接到接收器。 如果此对象已连接到其他管道输入流,则抛出IOException

        如果snk是未连接的管道输入流,并且src是未连接的管道输出流,则可以通过以下任一方式连接它们:

         src.connect(snk)
        或电话:
         snk.connect(src)
        两个电话有相同的效果。
        参数
        snk - 要连接的管道输入流。
        异常
        IOException - 如果发生I / O错误。
      • write

        public void write​(int b)
                   throws IOException
        将指定的byte写入管道输出流。

        实现write方法OutputStream

        Specified by:
        writeOutputStream
        参数
        b - byte
        异常
        IOException -如果管道是 brokenunconnected ,关闭,或者如果发生I / O错误。
      • write

        public void write​(byte[] b,
                          int off,
                          int len)
                   throws IOException
        从指定的字节数组写入len字节,从偏移量off开始off到这个管道输出流。 该方法阻塞直到所有字节被写入输出流。
        重写:
        writeOutputStream
        参数
        b - 数据。
        off - 数据中的起始偏移量。
        len - 要写入的字节数。
        异常
        IOException -如果管道是 brokenunconnected ,关闭,或者如果发生I / O错误。
      • flush

        public void flush​()
                   throws IOException
        刷新此输出流并强制任何缓冲的输出字节被写出。 这将通知任何读者字节在管道中等待。
        Specified by:
        flush在接口 Flushable
        重写:
        flushOutputStream
        异常
        IOException - 如果发生I / O错误。