PipedWriterpublic class PipedWriter extends Writer Piped character-output streams. |
Fields Summary |
---|
private PipedReader | sink | private boolean | closed |
Constructors Summary |
---|
public PipedWriter(PipedReader snk)Creates a piped writer connected to the specified piped
reader. Data characters written to this stream will then be
available as input from snk .
connect(snk);
| public PipedWriter()Creates a piped writer that is not yet connected to a
piped reader. It must be connected to a piped reader,
either by the receiver or the sender, before being used.
|
Methods Summary |
---|
public void | close()Closes this piped output stream and releases any system resources
associated with this stream. This stream may no longer be used for
writing characters.
closed = true;
if (sink != null) {
sink.receivedLast();
}
| public synchronized void | connect(java.io.PipedReader snk)Connects this piped writer to a receiver. If this object
is already connected to some other piped reader, an
IOException is thrown.
If snk is an unconnected piped reader and
src is an unconnected piped writer, they may
be connected by either the call:
src.connect(snk)
or the call:
snk.connect(src)
The two calls have the same effect.
if (snk == null) {
throw new NullPointerException();
} else if (sink != null || snk.connected) {
throw new IOException("Already connected");
} else if (snk.closedByReader || closed) {
throw new IOException("Pipe closed");
}
sink = snk;
snk.in = -1;
snk.out = 0;
snk.connected = true;
| public synchronized void | flush()Flushes this output stream and forces any buffered output characters
to be written out.
This will notify any readers that characters are waiting in the pipe.
if (sink != null) {
if (sink.closedByReader || closed) {
throw new IOException("Pipe closed");
}
synchronized (sink) {
sink.notifyAll();
}
}
| public void | write(int c)Writes the specified char to the piped output stream.
If a thread was reading data characters from the connected piped input
stream, but the thread is no longer alive, then an
IOException is thrown.
Implements the write method of Writer .
if (sink == null) {
throw new IOException("Pipe not connected");
}
sink.receive(c);
| public void | write(char[] cbuf, int off, int len)Writes len characters from the specified character array
starting at offset off to this piped output stream.
This method blocks until all the characters are written to the output
stream.
If a thread was reading data characters from the connected piped input
stream, but the thread is no longer alive, then an
IOException is thrown.
if (sink == null) {
throw new IOException("Pipe not connected");
} else if ((off | len | (off + len) | (cbuf.length - (off + len))) < 0) {
throw new IndexOutOfBoundsException();
}
sink.receive(cbuf, off, len);
|
|