Module java.base
Package java.io

Class PipedOutputStream

java.lang.Object
java.io.OutputStream
java.io.PipedOutputStream
所有已实现的接口:
Closeable, Flushable, AutoCloseable

public class PipedOutputStream extends OutputStream
可以将一个管道输出流连接到一个管道输入流,以创建一个通信管道。管道输出流是管道的发送端。通常,数据由一个线程写入到一个PipedOutputStream对象中,然后由另一个线程从连接的PipedInputStream中读取数据。不建议尝试在单个线程中同时使用这两个对象,因为这可能会导致线程死锁。如果从连接的管道输入流读取数据字节的线程不再存活,则称管道为 断开
自从:
1.0
参见:
  • Constructor Details

    • PipedOutputStream

      public PipedOutputStream(PipedInputStream snk) throws IOException
      创建一个连接到指定管道输入流的管道输出流。然后从该流写入的数据字节将作为snk的输入可用。
      参数:
      snk - 要连接到的管道输入流。
      抛出:
      IOException - 如果发生I/O错误。
    • PipedOutputStream

      public PipedOutputStream()
      创建一个尚未连接到管道输入流的管道输出流。在使用之前,必须将其连接到管道输入流,可以由接收器或发送器连接。
      参见:
  • Method Details

    • 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写入管道输出流。

      实现OutputStreamwrite方法。

      指定者:
      write 在类 OutputStream
      参数:
      b - 要写入的byte
      抛出:
      IOException - 如果管道断开未连接、关闭或发生I/O错误。
    • write

      public void write(byte[] b, int off, int len) throws IOException
      从指定的字节数组中从偏移量off开始写入len字节到此管道输出流。此方法将阻塞,直到所有字节都写入输出流为止。
      覆盖:
      write 在类 OutputStream
      参数:
      b - 数据。
      off - 数据中的起始偏移量。
      len - 要写入的字节数。
      抛出:
      IOException - 如果管道断开未连接、关闭或发生I/O错误。
      IndexOutOfBoundsException - 如果off为负、len为负或len大于b.length - off
    • flush

      public void flush() throws IOException
      刷新此输出流并强制写出任何缓冲的输出字节。这将通知任何读取器,字节正在管道中等待。
      指定者:
      flush 在接口 Flushable
      覆盖:
      flush 在类 OutputStream
      抛出:
      IOException - 如果发生I/O错误。
    • close

      public void close() throws IOException
      关闭此管道输出流并释放与此流相关联的任何系统资源。此流可能不再用于写入字节。
      指定者:
      close 在接口 AutoCloseable
      指定者:
      close 在接口 Closeable
      覆盖:
      close 在类 OutputStream
      抛出:
      IOException - 如果发生I/O错误。