org.apache.pdfbox.pdfparser

## Class PDFStreamParser

- java.lang.Object
- - org.apache.pdfbox.pdfparser.BaseParser
  - - org.apache.pdfbox.pdfparser.PDFStreamParser

    public class PDFStreamParser
    extends BaseParser

This will parse a PDF byte stream and extract operands and such.

Author:
  Ben Litchfield

### Field Summary

### Fields inherited from class org.apache.pdfbox.pdfparser.BaseParser

`A, ASCII_CR, ASCII_LF, B, D, DEF, document, E, ENDOBJ_STRING, ENDSTREAM_STRING, J, M, N, O, R, S, STREAM_STRING, T`

### Constructor Summary

Constructors
Constructor and Description
`PDFStreamParser(byte[] bytes)` Constructor.
`PDFStreamParser(COSStream stream)` Deprecated. Use `PDFStreamParser(PDContentStream)` instead.
`PDFStreamParser(PDContentStream contentStream)` Constructor.
`PDFStreamParser(PDStream stream)` Deprecated. Use `PDFStreamParser(PDContentStream)` instead.

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `close()` Close the underlying resource.
`List<Object>` `getTokens()` This will get the tokens that were parsed from the stream by the `parse()` method.
`void` `parse()` This will parse all the tokens in the stream.
`Object` `parseNextToken()` This will parse the next token in the stream.
`protected String` `readOperator()` This will read an operator from the stream.

### Methods inherited from class org.apache.pdfbox.pdfparser.BaseParser

`isClosing, isClosing, isDigit, isDigit, isEndOfName, isEOL, isEOL, isSpace, isSpace, isWhitespace, isWhitespace, parseBoolean, parseCOSArray, parseCOSDictionary, parseCOSName, parseCOSString, parseDirObject, readExpectedChar, readExpectedString, readExpectedString, readGenerationNumber, readInt, readLine, readLong, readObjectNumber, readString, readString, readStringNumber, skipLinebreak, skipSpaces, skipWhiteSpaces`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### PDFStreamParser

    @Deprecated
    public PDFStreamParser(PDStream stream)
                                throws IOException

Deprecated. Use `PDFStreamParser(PDContentStream)` instead.
Constructor.

Parameters:
  `stream` - The stream to parse.
Throws:
  `IOException` - If there is an error initializing the stream.

#### PDFStreamParser

    @Deprecated
    public PDFStreamParser(COSStream stream)
                                throws IOException

Deprecated. Use `PDFStreamParser(PDContentStream)` instead.
Constructor.

Parameters:
  `stream` - The stream to parse.
Throws:
  `IOException` - If there is an error initializing the stream.

#### PDFStreamParser

    public PDFStreamParser(PDContentStream contentStream)
                    throws IOException

Constructor.

Parameters:
  `contentStream` - The content stream to parse.
Throws:
  `IOException` - If there is an error initializing the stream.

#### PDFStreamParser

    public PDFStreamParser(byte[] bytes)

Constructor.

Parameters:
  `bytes` - the bytes to parse.

### Method Detail

#### parse

    public void parse()
               throws IOException

This will parse all the tokens in the stream. This will close the stream when it is finished parsing. You can then access these with `getTokens()`.

Throws:
  `IOException` - If there is an error while parsing the stream.

#### getTokens

    public List<Object> getTokens()

This will get the tokens that were parsed from the stream by the `parse()` method.

Returns:
  All of the tokens in the stream.

#### parseNextToken

    public Object parseNextToken()
                          throws IOException

This will parse the next token in the stream.

Returns:
  The next token in the stream or null if there are no more tokens in the stream.
Throws:
  `IOException` - If an io error occurs while parsing the stream.

#### readOperator

    protected String readOperator()
                           throws IOException

This will read an operator from the stream.

Returns:
  The operator that was read from the stream.
Throws:
  `IOException` - If there is an error reading from the stream.

#### close

    public void close()
               throws IOException

Close the underlying resource.

Throws:
  `IOException` - if something went wrong