org.pdfbox.io
Class PushBackInputStream

java.lang.Object
  extended byjava.io.InputStream
      extended byjava.io.FilterInputStream
          extended byjava.io.PushbackInputStream
              extended byorg.pdfbox.io.PushBackInputStream
Direct Known Subclasses:
ByteArrayPushBackInputStream

public class PushBackInputStream
extends PushbackInputStream

A simple subclass that adds a few convience methods.

Version:
$Revision: 1.6 $
Author:
Ben Litchfield

Field Summary
 
Fields inherited from class java.io.PushbackInputStream
buf, pos
 
Fields inherited from class java.io.FilterInputStream
in
 
Constructor Summary
PushBackInputStream(InputStream input, int size)
          Constructor.
 
Method Summary
 void fillBuffer()
          This is a method used to fix PDFBox issue 974661, the PDF parsing code needs to know if there is at least x amount of data left in the stream, but the available() method returns how much data will be available without blocking.
 boolean isEOF()
          A simple test to see if we are at the end of the stream.
 int peek()
          This will peek at the next byte.
 
Methods inherited from class java.io.PushbackInputStream
available, close, markSupported, read, read, skip, unread, unread, unread
 
Methods inherited from class java.io.FilterInputStream
mark, read, reset
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PushBackInputStream

public PushBackInputStream(InputStream input,
                           int size)
                    throws IOException
Constructor.

Parameters:
input - The input stream.
size - The size of the push back buffer.
Throws:
IOException - If there is an error with the stream.
Method Detail

peek

public int peek()
         throws IOException
This will peek at the next byte.

Returns:
The next byte on the stream, leaving it as available to read.
Throws:
IOException - If there is an error reading the next byte.

isEOF

public boolean isEOF()
              throws IOException
A simple test to see if we are at the end of the stream.

Returns:
true if we are at the end of the stream.
Throws:
IOException - If there is an error reading the next byte.

fillBuffer

public void fillBuffer()
                throws IOException
This is a method used to fix PDFBox issue 974661, the PDF parsing code needs to know if there is at least x amount of data left in the stream, but the available() method returns how much data will be available without blocking. PDFBox is willing to block to read the data, so we will first fill the internal buffer.

Throws:
IOException - If there is an error filling the buffer.