PushbackInputStream class provides a pushback buffer so a
program can "unread" bytes onto the stream.
The next time data is read from the stream, the "unread" bytes are read.
public void unread(int b) throws IOException public void unread(byte data, int offset, int length) throws IOException public void unread(byte data) throws IOException
By default the buffer is only one byte long, and trying to unread more than that
IOException. However you can change the default buffer
size with the second constructor:
public PushbackInputStream(InputStream in) public PushbackInputStream(InputStream in, int size)
BufferedInputStreamuse buffers, only a
PushbackInputStreamallows unreading and only a
BufferedInputStreamallows marking and resetting. In a
available() methods work
exactly as with normal input streams.
However, they first attempt to read from the pushback buffer.