java.io.PushbackReader
PushbackReader is a filter class which allows chars read to be pushed back
into the stream so that they can be reread. Parsers may find this useful.
There is a progammable limit to the number of chars which may be pushed back.
If the buffer of pushed back chars is empty, chars are read from the source
reader.
Summary
protected |
|
|
Reader |
in |
The target Reader which is being filtered. |
protected |
|
|
Object |
lock |
The object used to synchronize access to the reader. |
Public Constructors
Public Methods
Methods inherited
from class
java.io.Reader
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
Details
Public Constructors
public
PushbackReader(Reader in)
Constructs a new PushbackReader on the Reader
in
. The
size of the pushback buffer is set to the default, or 1 character.
Parameters
in
| the Reader to allow pushback operations on.
|
public
PushbackReader(Reader in, int size)
Constructs a new PushbackReader on the Reader
in
. The
size of the pushback buffer is set to
size
characters.
Parameters
in
| the Reader to allow pushback operations on. |
size
| the size of the pushback buffer (size>=0 ) in
characters. |
Public Methods
public
void
close()
Close this PushbackReader. This implementation closes this reader,
releases the buffer used to pushback characters, and closes the target
reader.
Throws
IOException
| If an error occurs attempting to close this Reader.
|
public
void
mark(int readAheadLimit)
Mark this PushbackReader. Since mark is not supported, this method will
always throw IOException.
Parameters
readAheadLimit
| ignored, this method always throws IOException. |
Throws
IOException
| Since mark is not supported byt PushbackReader.
|
public
boolean
markSupported()
Returns a boolean indicating whether or not this PushbackReader supports
mark() and reset(). This implementation always returns false since
PushbackReaders do not support mark/reset.
Returns
- boolean indicates whether or not mark() and reset() are
supported.
public
int
read(char[] buffer, int offset, int count)
Reads at most
count
chars from this PushbackReader and
stores them in char array
buffer
starting at
offset
. Answer the number of chars actually read or -1 if
no chars were read and end of stream was encountered. This implementation
reads chars from the pushback buffer first, then the target stream if
more chars are required to satisfy
count
.
Parameters
buffer
| the char array in which to store the read chars. |
offset
| the offset in buffer to store the read chars. |
count
| the maximum number of chars to store in buffer . |
Returns
- the number of chars actually read or -1 if end of stream.
public
int
read()
Reads a single character from this PushbackReader and returns the result
as an int. The 2 lowest-order bytes are returned or -1 of the end of
stream was encountered. If the pushback buffer does not contain any
available chars then a char from the target input reader is returned.
Returns
- int The char read or -1 if end of stream.
public
boolean
ready()
Returns a
boolean
indicating whether or not this
PushbackReader is ready to be read without blocking. If the result is
true
, the next
read()
will not block. If
the result is
false
this Reader may or may not block when
read()
is sent.
Returns
- boolean
true
if the receiver will not block when
read()
is called, false
if unknown
or blocking will occur.
Throws
IOException
| If the Reader is already closed or some other IO error
occurs.
|
public
void
reset()
Resets this PushbackReader. Since mark is not supported, always throw
IOException.
public
long
skip(long count)
Skips
count
number of characters in this Reader.
Subsequent
read()
's will not return these characters
unless
reset()
is used.
Parameters
count
| the maximum number of characters to skip. |
Returns
- the number of characters actually skipped.
public
void
unread(char[] buffer)
Push back all the chars in
buffer
. The chars are pushed
so that they would be read back buffer[0], buffer[1], etc. If the push
back buffer cannot handle the entire contents of
buffer
,
an IOException will be thrown. Some of the buffer may already be in the
buffer after the exception is thrown.
Parameters
buffer
| the char array containing chars to push back into the reader. |
Throws
IOException
| If the pushback buffer becomes, or is, full.
|
public
void
unread(char[] buffer, int offset, int count)
Push back
count
number of chars in
buffer
starting at
offset
. The chars are pushed so that they
would be read back buffer[offset], buffer[offset+1], etc. If the push
back buffer cannot handle the chars copied from
buffer
,
an IOException will be thrown. Some of the chars may already be in the
buffer after the exception is thrown.
Parameters
buffer
| the char array containing chars to push back into the reader. |
offset
| the location to start taking chars to push back. |
count
| the number of chars to push back. |
Throws
IOException
| If the pushback buffer becomes, or is, full.
|
public
void
unread(int oneChar)
Push back one
char
. Takes the char
oneChar
and puts in in the local buffer of chars to read back before accessing
the target input stream.
Parameters
oneChar
| the char to push back into the stream. |