PushbackInputStream

The PushbackInputStream class provides a pushback buffer so a program can "unread" bytes onto the stream. These may be bytes the program has read from the stream or they may be bytes that come from somewhere else. 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 throws an IOException. However you can change the default buffer size with the second constructor below:

 public PushbackInputStream(InputStream in)
 public PushbackInputStream(InputStream in, int size)
Although both PushbackInputStream and BufferedInputStream use buffers, only a PushbackInputStream allows unreading and only a BufferedInputStream allows marking and resetting. In a PushbackInputStream markSupported() returns false.
 public boolean markSupported()
The read() and available() methods work exactly as with normal input streams. However, they first attempt to read from the pushback buffer.

 public int read() throws IOException
 public int read(byte[] data, int offset, int length) throws IOException
 public int available() throws IOException

Previous | Next | Top
Last Modified November 19, 1999
Copyright 1997, 1999 Elliotte Rusty Harold
elharo@metalab.unc.edu