A piped output stream should be connected to a piped input stream; the piped
input stream then provides whatever data bytes are written to the piped output
stream. Typically, data is written to a PipeOutputStream
object by one thread
and data is read from the corresponding PipedInputStream
(§22.5) by some
other thread. Attempting to use both objects from a single thread is not recommended, as it may deadlock the thread.
public classPipedOutputStream
extends OutputStream { publicPipedOutputStream
(PipedInputStream snk) throws IOException; publicPipedOutputStream
(); public voidconnect
(PipedInputStream snk) throws IOException; public voidwrite
(int b) throws IOException; public voidwrite
(byte[] b, int off, int len) throws IOException, NullPointerException, IndexOutOfBoundsException; public voidclose
() throws IOException; }
22.17.1 public PipedOutputStream(PipedInputStream snk)
throws IOException
This constructor initializes a newly created PipedOutputStream
so that it is connected to the piped input stream snk
. Data bytes written to this stream will then be
available as input from snk
.
22.17.2 public PipedOutputStream()
This constructor initializes a newly created PipedOutputStream
so that it is not
yet connected. It must be connected to a PipedInputStream
before being used.
22.17.3 public void connect(PipedInputStream snk)
throws IOException
The connect
method causes this piped output stream to be connected to the piped
input stream snk
. If this object is already connected to some other piped input
stream, an IOException
is thrown.
If snk
is an unconnected piped input stream and src
is an unconnected piped output stream, they may be connected by either the call:
src.connect(snk)
snk.connect(src)
The two calls have the same effect.
22.17.4 public void write(int b) throws IOException
If a thread was reading data bytes from the connected piped input stream, but the
thread is no longer alive, then an IOException
is thrown.
Implements the write
method of OutputStream
(§22.15.1).
22.17.5 public void write(byte[] b, int off, int len)
throws IOException, NullPointerException, IndexOutOfBoundsException
If a thread was reading data bytes from the connected piped input stream, but the
thread is no longer alive, then an IOException
is thrown.
Overrides the write
method of OutputStream
(§22.15.3).
22.17.6 public void close() throws IOException
This piped output stream is closed and may no longer be used for writing bytes.
Overrides the close
method of OutputStream
(§22.15.5).