Package org.apache.pdfbox.io
Interface RandomAccessRead
-
- All Superinterfaces:
java.lang.AutoCloseable
,java.io.Closeable
- All Known Subinterfaces:
RandomAccess
- All Known Implementing Classes:
RandomAccessBuffer
,RandomAccessBufferedFileInputStream
,RandomAccessFile
,ScratchFileBuffer
public interface RandomAccessRead extends java.io.Closeable
An interface allowing random access read operations.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description int
available()
Returns an estimate of the number of bytes that can be read.long
getPosition()
Returns offset of next byte to be returned by a read method.boolean
isClosed()
Returns true if this stream has been closed.boolean
isEOF()
A simple test to see if we are at the end of the data.long
length()
The total number of bytes that are available.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.void
rewind(int bytes)
Seek backwards the given number of bytes.void
seek(long position)
Seek to a position in the data.
-
-
-
Method Detail
-
read
int read() throws java.io.IOException
Read a single byte of data.- Returns:
- The byte of data that is being read.
- Throws:
java.io.IOException
- If there is an error while reading the data.
-
read
int read(byte[] b) throws java.io.IOException
Read a buffer of data.- 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
int read(byte[] b, int offset, int length) throws java.io.IOException
Read a buffer of data.- 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
long getPosition() throws java.io.IOException
Returns offset of next byte to be returned by a read method.- Returns:
- offset of next byte which will be returned with next
read()
(if no more bytes are left it returns a value >= length of source) - Throws:
java.io.IOException
-
seek
void seek(long position) throws java.io.IOException
Seek to a position in the data.- Parameters:
position
- The position to seek to.- Throws:
java.io.IOException
- If there is an error while seeking.
-
length
long length() throws java.io.IOException
The total number of bytes that are available.- Returns:
- The number of bytes available.
- Throws:
java.io.IOException
- If there is an IO error while determining the length of the data stream.
-
isClosed
boolean isClosed()
Returns true if this stream has been closed.
-
peek
int peek() throws java.io.IOException
This will peek at the next byte.- 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.
-
rewind
void rewind(int bytes) throws java.io.IOException
Seek backwards the given number of bytes.- Parameters:
bytes
- the number of bytes to be seeked backwards- Throws:
java.io.IOException
- If there is an error while seeking
-
readFully
byte[] readFully(int length) throws java.io.IOException
Reads a given number of bytes.- 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
boolean isEOF() throws java.io.IOException
A simple test to see if we are at the end of the data.- Returns:
- true if we are at the end of the data.
- Throws:
java.io.IOException
- If there is an error reading the next byte.
-
available
int available() throws java.io.IOException
Returns an estimate of the number of bytes that can be read.- Returns:
- the number of bytes that can be read
- Throws:
java.io.IOException
- if this random access has been closed
-
-