All Packages Class Hierarchy This Package Previous Next Index
Class java.io.PushbackInputStream
java.lang.Object
|
+----java.io.InputStream
|
+----java.io.FilterInputStream
|
+----java.io.PushbackInputStream
- public class PushbackInputStream
- extends FilterInputStream
This class is an input stream filter that provides a 1-byte
pushback buffer. This feature allows an application to
"unread" the last character that it read. The next
time that a read is performed on the input stream filter, the
"unread" character is re-read.
This functionality is useful when a fragment of code should read
an indefinite number of data bytes that are delimited by
particular byte values. After reading the terminating byte, the
code fragment can "unread" it, so that the next read
operation on the input stream will re-read the byte that was pushed back.
-
buf
- The push back buffer.
-
pos
- The current position within the buffer.
-
PushbackInputStream(InputStream)
- Constructs a new pushback input stream that reads its input from
the specified input stream.
-
PushbackInputStream(InputStream, int)
- Creates a new input stream with a push back buffer of specified size.
-
available()
- Returns the number of bytes that can be read from this input
stream without blocking.
-
markSupported()
- Tests if the input stream supports the
mark
and
reset
methods.
-
read()
- Reads the next byte of data from this input stream.
-
read(byte[], int, int)
- Reads up to
len
bytes of data from this input stream
into an array of bytes.
-
unread(byte[])
- Pushes back an array of bytes.
-
unread(byte[], int, int)
- Pushes back an array of bytes.
-
unread(int)
- Pushes back a character so that it is read again by the next call
to the
read
method on this input stream.
buf
protected byte buf[]
- The push back buffer.
pos
protected int pos
- The current position within the buffer.
PushbackInputStream
public PushbackInputStream(InputStream in,
int size)
- Creates a new input stream with a push back buffer of specified size.
- Parameters:
- size - the size of the push back buffer
PushbackInputStream
public PushbackInputStream(InputStream in)
- Constructs a new pushback input stream that reads its input from
the specified input stream.
- Parameters:
- in - the underlying input stream.
read
public int read() throws IOException
- Reads the next byte of data from this input stream. The value
byte is returned as an
int
in the range
0
to 255
. If no byte is available
because the end of the stream has been reached, the value
-1
is returned. This method blocks until input data
is available, the end of the stream is detected, or an exception
is thrown.
The read
method of PushbackInputStream
returns the just pushed-back character, if there is one, and
otherwise calls the read
method of its underlying
input stream and returns whatever value that method returns.
- Returns:
- the next byte of data, or
-1
if the end of the
stream is reached.
- Throws: IOException
- if an I/O error occurs.
- Overrides:
- read in class FilterInputStream
- See Also:
- read
read
public int read(byte b[],
int off,
int len) throws IOException
- Reads up to
len
bytes of data from this input stream
into an array of bytes. This method blocks until at least 1 byte
of input is available.
- Parameters:
- b - the buffer into which the data is read.
- off - the start offset of the data.
- len - the maximum number of bytes read.
- Returns:
- the total number of bytes read into the buffer, or
-1
if there is no more data because the end of
the stream has been reached.
- Throws: IOException
- if an I/O error occurs.
- Overrides:
- read in class FilterInputStream
unread
public void unread(int b) throws IOException
- Pushes back a character so that it is read again by the next call
to the
read
method on this input stream.
- Parameters:
- b - the character to push back.
- Throws: IOException
- if the application attempts to push back a
character before the previously pushed-back character has
been read.
unread
public void unread(byte b[],
int off,
int len) throws IOException
- Pushes back an array of bytes.
- Parameters:
- b - the bytes to push back
- off - the start offset of the data
- len - the number of bytes to push back.
- Throws: IOException
- If there is not enough room in the push back
buffer for the specified number of bytes.
unread
public void unread(byte b[]) throws IOException
- Pushes back an array of bytes.
- Parameters:
- b - the bytes to push back
- Throws: IOException
- If there is not enough room in the push back
buffer for the specified number of bytes.
available
public int available() throws IOException
- Returns the number of bytes that can be read from this input
stream without blocking.
The available
method of
PushbackInputStream
calls the available
method of its underlying input stream; it returns that value if
there is no character that has been pushed back, or that value
plus 1
if there is a character that has been pushed back.
- Returns:
- the number of bytes that can be read from the input stream
without blocking.
- Throws: IOException
- if an I/O error occurs.
- Overrides:
- available in class FilterInputStream
- See Also:
- in
markSupported
public boolean markSupported()
- Tests if the input stream supports the
mark
and
reset
methods. The markSupported
method
of PushbackInputStream
always returns false
.
- Returns:
-
true
if this stream type supports the
mark
and reset
methods;
false
otherwise.
- Overrides:
- markSupported in class FilterInputStream
- See Also:
- mark, reset
All Packages Class Hierarchy This Package Previous Next Index