public class PipedWriter extends Writer
PipedReader
Constructor and Description |
---|
PipedWriter()
Constructs a new unconnected
PipedWriter . |
PipedWriter(PipedReader destination)
Constructs a new
PipedWriter connected to destination . |
Modifier and Type | Method and Description |
---|---|
void |
close()
Closes this writer.
|
void |
connect(PipedReader reader)
Connects this
PipedWriter to a PipedReader . |
void |
flush()
Notifies the readers of this
PipedReader that characters can be read. |
void |
write(char[] buffer,
int offset,
int count)
Writes
count characters from the character array buffer
starting at offset index to this writer. |
void |
write(int c)
Writes a single character
c to this writer. |
public PipedWriter()
PipedWriter
. The resulting writer
must be connected to a PipedReader
before data may be written to
it.PipedReader
public PipedWriter(PipedReader destination) throws IOException
PipedWriter
connected to destination
.
Any data written to this writer can be read from destination
.destination
- the PipedReader
to connect to.IOException
- if destination
is already connected.public void close() throws IOException
PipedReader
is connected to this writer,
it is closed as well and the pipe is disconnected. Any data buffered in
the reader can still be read.close
in interface Closeable
close
in interface AutoCloseable
close
in class Writer
IOException
- if an error occurs while closing this writer.public void connect(PipedReader reader) throws IOException
PipedWriter
to a PipedReader
. Any data
written to this writer becomes readable in the reader.reader
- the reader to connect to.IOException
- if this writer is closed or already connected, or if reader
is already connected.public void flush() throws IOException
PipedReader
that characters can be read. This
method does nothing if this Writer is not connected.flush
in interface Flushable
flush
in class Writer
IOException
- if an I/O error occurs while flushing this writer.public void write(char[] buffer, int offset, int count) throws IOException
count
characters from the character array buffer
starting at offset index
to this writer. The written data can
then be read from the connected PipedReader
instance.
Separate threads should be used to write to a PipedWriter
and to
read from the connected PipedReader
. If the same thread is used,
a deadlock may occur.
write
in class Writer
buffer
- the buffer to write.offset
- the index of the first character in buffer
to write.count
- the number of characters from buffer
to write to this
writer.IndexOutOfBoundsException
- if offset < 0
or count < 0
, or if offset + count
is bigger than the length of buffer
.InterruptedIOException
- if the pipe is full and the current thread is interrupted
waiting for space to write data. This case is not currently
handled correctly.IOException
- if this writer is closed or not connected, if the target
reader is closed or if the thread reading from the target
reader is no longer alive. This case is currently not handled
correctly.NullPointerException
- if buffer
is null
.public void write(int c) throws IOException
c
to this writer. This character can
then be read from the connected PipedReader
instance.
Separate threads should be used to write to a PipedWriter
and to
read from the connected PipedReader
. If the same thread is used,
a deadlock may occur.
write
in class Writer
c
- the character to write.InterruptedIOException
- if the pipe is full and the current thread is interrupted
waiting for space to write data. This case is not currently
handled correctly.IOException
- if this writer is closed or not connected, if the target
reader is closed or if the thread reading from the target
reader is no longer alive. This case is currently not handled
correctly.