Package org.apache.pdfbox.pdfparser
Class InputStreamSource
- java.lang.Object
-
- org.apache.pdfbox.pdfparser.InputStreamSource
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,SequentialSource
final class InputStreamSource extends java.lang.Object implements SequentialSource
A SequentialSource backed by an InputStream.
-
-
Constructor Summary
Constructors Constructor Description InputStreamSource(java.io.InputStream input)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
long
getPosition()
Returns offset of next byte to be returned by a read method.boolean
isEOF()
Returns true if the end of the data source has been reached.int
peek()
This will peek at the next byte.int
read()
Read a single byte of data.int
read(byte[] b)
Read a buffer of data.int
read(byte[] b, int offset, int length)
Read a buffer of data.byte[]
readFully(int length)
Reads a given number of bytes in its entirety.void
unread(byte[] bytes)
Unreads an array of bytes.void
unread(byte[] bytes, int start, int len)
Unreads a portion of an array of bytes.void
unread(int b)
Unreads a single byte.
-
-
-
Method Detail
-
read
public int read() throws java.io.IOException
Description copied from interface:SequentialSource
Read a single byte of data.- Specified by:
read
in interfaceSequentialSource
- Returns:
- The byte of data that is being read.
- Throws:
java.io.IOException
- If there is an error while reading the data.
-
read
public int read(byte[] b) throws java.io.IOException
Description copied from interface:SequentialSource
Read a buffer of data.- Specified by:
read
in interfaceSequentialSource
- Parameters:
b
- The buffer to write the data to.- Returns:
- The number of bytes that were actually read.
- Throws:
java.io.IOException
- If there was an error while reading the data.
-
read
public int read(byte[] b, int offset, int length) throws java.io.IOException
Description copied from interface:SequentialSource
Read a buffer of data.- Specified by:
read
in interfaceSequentialSource
- Parameters:
b
- The buffer to write the data to.offset
- Offset into the buffer to start writing.length
- The amount of data to attempt to read.- Returns:
- The number of bytes that were actually read.
- Throws:
java.io.IOException
- If there was an error while reading the data.
-
getPosition
public long getPosition() throws java.io.IOException
Description copied from interface:SequentialSource
Returns offset of next byte to be returned by a read method.- Specified by:
getPosition
in interfaceSequentialSource
- Returns:
- offset of next byte which will be returned with next
SequentialSource.read()
(if no more bytes are left it returns a value >= length of source). - Throws:
java.io.IOException
- If there was an error while reading the data.
-
peek
public int peek() throws java.io.IOException
Description copied from interface:SequentialSource
This will peek at the next byte.- Specified by:
peek
in interfaceSequentialSource
- Returns:
- The next byte on the stream, leaving it as available to read.
- Throws:
java.io.IOException
- If there is an error reading the next byte.
-
unread
public void unread(int b) throws java.io.IOException
Description copied from interface:SequentialSource
Unreads a single byte.- Specified by:
unread
in interfaceSequentialSource
- Parameters:
b
- byte array to push back- Throws:
java.io.IOException
- if there is an error while unreading
-
unread
public void unread(byte[] bytes) throws java.io.IOException
Description copied from interface:SequentialSource
Unreads an array of bytes.- Specified by:
unread
in interfaceSequentialSource
- Parameters:
bytes
- byte array to be unread- Throws:
java.io.IOException
- if there is an error while unreading
-
unread
public void unread(byte[] bytes, int start, int len) throws java.io.IOException
Description copied from interface:SequentialSource
Unreads a portion of an array of bytes.- Specified by:
unread
in interfaceSequentialSource
- Parameters:
bytes
- byte array to be unreadstart
- start indexlen
- number of bytes to be unread- Throws:
java.io.IOException
- if there is an error while unreading
-
readFully
public byte[] readFully(int length) throws java.io.IOException
Description copied from interface:SequentialSource
Reads a given number of bytes in its entirety.- Specified by:
readFully
in interfaceSequentialSource
- Parameters:
length
- the number of bytes to be read- Returns:
- a byte array containing the bytes just read
- Throws:
java.io.IOException
- if an I/O error occurs while reading data
-
isEOF
public boolean isEOF() throws java.io.IOException
Description copied from interface:SequentialSource
Returns true if the end of the data source has been reached.- Specified by:
isEOF
in interfaceSequentialSource
- Returns:
- true if we are at the end of the data.
- Throws:
java.io.IOException
- If there is an error reading the next byte.
-
close
public void close() throws java.io.IOException
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Throws:
java.io.IOException
-
-