|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.io.Reader java.io.PipedReader
Piped character-input streams.
Field Summary | |
(package private) char[] |
buffer
The circular buffer into which incoming data is placed. |
(package private) boolean |
closedByReader
|
(package private) boolean |
closedByWriter
|
(package private) boolean |
connected
|
(package private) int |
in
The index of the position in the circular buffer at which the next character of data will be stored when received from the connected piped writer. |
(package private) int |
out
The index of the position in the circular buffer at which the next character of data will be read by this piped reader. |
(package private) static int |
PIPE_SIZE
The size of the pipe's circular input buffer. |
(package private) Thread |
readSide
|
(package private) Thread |
writeSide
|
Fields inherited from class java.io.Reader |
lock |
Constructor Summary | |
PipedReader()
Creates a PipedReader so
that it is not yet connected. |
|
PipedReader(PipedWriter src)
Creates a PipedReader so
that it is connected to the piped writer
src . |
Method Summary | |
void |
close()
Closes this piped stream and releases any system resources associated with the stream. |
void |
connect(PipedWriter src)
Causes this piped reader to be connected to the piped writer src .
|
int |
read()
Reads the next character of data from this piped stream. |
int |
read(char[] cbuf,
int off,
int len)
Reads up to len characters of data from this piped
stream into an array of characters. |
boolean |
ready()
Tell whether this stream is ready to be read. |
(package private) void |
receive(char[] c,
int off,
int len)
Receives data into an array of characters. |
(package private) void |
receive(int c)
Receives a char of data. |
(package private) void |
receivedLast()
Notifies all waiting threads that the last character of data has been received. |
Methods inherited from class java.io.Reader |
mark, markSupported, read, reset, skip |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
boolean closedByWriter
boolean closedByReader
boolean connected
Thread readSide
Thread writeSide
static final int PIPE_SIZE
char[] buffer
int in
in<0
implies the buffer is empty,
in==out
implies the buffer is full
int out
Constructor Detail |
public PipedReader(PipedWriter src) throws IOException
PipedReader
so
that it is connected to the piped writer
src
. Data written to src
will then be available as input from this stream.
src
- the stream to connect to.
IOException
- if an I/O error occurs.public PipedReader()
PipedReader
so
that it is not yet connected. It must be
connected to a PipedWriter
before being used.
connect(java.io.PipedWriter)
,
PipedWriter.connect(java.io.PipedReader)
Method Detail |
public void connect(PipedWriter src) throws IOException
src
.
If this object is already connected to some
other piped writer, an IOException
is thrown.
If src
is an
unconnected piped writer and snk
is an unconnected piped reader, they
may be connected by either the call:
snk.connect(src)
or the call:
src.connect(snk)
The two calls have the same effect.
src
- The piped writer to connect to.
IOException
- if an I/O error occurs.void receive(int c) throws IOException
IOException
void receive(char[] c, int off, int len) throws IOException
IOException
void receivedLast()
public int read() throws IOException
-1
is returned.
This method blocks until input data is available, the end of
the stream is detected, or an exception is thrown.
If a thread was providing data characters
to the connected piped writer, but
the thread is no longer alive, then an
IOException
is thrown.
read
in class Reader
-1
if the end of the
stream is reached.
IOException
- if the pipe is broken.public int read(char[] cbuf, int off, int len) throws IOException
len
characters of data from this piped
stream into an array of characters. Less than len
characters
will be read if the end of the data stream is reached. This method
blocks until at least one character of input is available.
If a thread was providing data characters to the connected piped output,
but the thread is no longer alive, then an IOException
is thrown.
read
in class Reader
cbuf
- the buffer into which the data is read.off
- the start offset of the data.len
- the maximum number of characters read.
-1
if there is no more data because the end of
the stream has been reached.
IOException
- if an I/O error occurs.public boolean ready() throws IOException
ready
in class Reader
IOException
- If an I/O error occurspublic void close() throws IOException
close
in class Reader
IOException
- if an I/O error occurs.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |