模块  java.base
软件包  java.io

Class PipedOutputStream

  • 实现的所有接口
    CloseableFlushableAutoCloseable

    public class PipedOutputStreamextends 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​(byte[] b,                  int off,                  int len)           throws IOException
        将从偏移off开始的指定字节数组中的len字节写入此管道输出流。 此方法将阻塞,直到所有字节都写入输出流。
        重写:
        writeOutputStream
        参数
        b - 数据。
        off - 数据中的起始偏移量。
        len - 要写入的字节数。
        异常
        IOException - 如果管道为 broken,unconnected关闭,或者发生I / O错误。
      • flush

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