java.io.PushbackInputStreamPushbackInputStream adds functionality to another input stream, namely the 
ability to "push back" or "unread" one byte. This is useful in situations where it is 
convenient for a fragment of code to read an indefinite number of data bytes that 
are delimited by a particular byte value; after reading the terminating byte, the 
code fragment can "unread" it, so that the next read operation on the input stream 
will reread the byte that was pushed back. For example, bytes representing the 
characters constituting an identifier might be terminated by a byte representing an 
operator character; a method whose job is to read just an identifier can read until it 
sees the operator and then push the operator back to be re-read.
public classPushbackInputStreamextends FilterInputStream { protected intpushBack= -1; publicPushbackInputStream(InputStream in); public intread() throws IOException; public intread(byte[] bytes, int offset, int length) throws IOException, NullPointerException, IndexOutOfBoundsException; public voidunread(int ch) throws IOException; public intavailable() throws IOException; public booleanmarkSupported(); }
22.13.1    protected int	 
pushBack = -1;
If this field has a nonnegative value, it is a byte that was pushed back. If this field 
is -1, there is currently no pushed-back byte.
22.13.2    public 
PushbackInputStream(InputStream in)
This constructor initializes a newly created PushbackInputStream by saving its 
argument, the input stream in, for later use. Initially, there is no pushed-back byte 
(the field pushBack is initialized to -1).
22.13.3    public int 
read() throws IOException
See the general contract of the read method of InputStream (§22.3.1).
If pushBack is not -1, the value of pushBack is returned and pushBack is set to -1. Otherwise, a byte is obtained from the contained input stream.
Overrides the read method of FilterInputStream (§22.9.3).
22.13.4    public int 
read(byte[] bytes, int offset, int length) throws IOException, NullPointerException,       IndexOutOfBoundsException
See the general contract of the read method of InputStream (§22.3.3).
If pushBack is not -1, it is used as an input byte (and pushBack is set to -1) before any bytes are read from the contained input stream.
Overrides the read method of FilterInputStream (§22.9.5).
22.13.5    public void 
unread(int b) throws IOException
If pushBack is not -1, an IOException is thrown (it is not permitted to push back 
more than one byte). Otherwise, the byte value b is pushed back by assigning b to 
pushBack.
22.13.6    public int 
available() throws IOException
See the general contract of the available method of InputStream (§22.3.1).
This method first calls the available method of the contained input stream. If pushBack is -1, the result is returned; otherwise, the result plus 1 is returned.
Overrides the available method of FilterInputStream (§22.9.7).
22.13.7    public boolean 
markSupported()
This method returns false (a PushbackInputStream does not support mark).
Contents | Prev | Next | Index
Java Language Specification (HTML generated by Suzette Pelouch on February 24, 1998)
Copyright © 1996 Sun Microsystems, Inc.
All rights reserved
Please send any comments or corrections to doug.kramer@sun.com