Package org.apache.pdfbox.io
Class RandomAccessBufferedFileInputStream
java.lang.Object
java.io.InputStream
org.apache.pdfbox.io.RandomAccessBufferedFileInputStream
- All Implemented Interfaces:
Closeable,AutoCloseable,RandomAccessRead,SequentialRead
Provides
InputStream access to portions of a file combined with
buffered reading of content. Start of next bytes to read can be set via seek
method.
File is accessed via RandomAccessFile and is read in byte chunks
which are cached.- Author:
- Timo Boehme (timo.boehme at ontochem com)
-
Constructor Summary
ConstructorsConstructorDescriptionCreate input stream instance for given file. -
Method Summary
Modifier and TypeMethodDescriptionintvoidclose()Release resources that are being held.longDeprecated.longReturns offset in file at which next byte would be read.longlength()The total number of bytes that are available.intread()Read a single byte of data.intread(byte[] b, int off, int len) Read a buffer of data.voidseek(long newOffset) Seeks to new position.longskip(long n) Methods inherited from class java.io.InputStream
mark, markSupported, nullInputStream, read, readAllBytes, readNBytes, readNBytes, reset, skipNBytes, transferTo
-
Constructor Details
-
RandomAccessBufferedFileInputStream
Create input stream instance for given file.- Throws:
FileNotFoundExceptionIOException
-
-
Method Details
-
getFilePointer
public long getFilePointer()Deprecated.usegetPosition()insteadReturns offset in file at which next byte would be read. -
getPosition
public long getPosition()Returns offset in file at which next byte would be read.- Specified by:
getPositionin interfaceRandomAccessRead- Returns:
- offset of next byte which will be returned with next
SequentialRead.read()(if no more bytes are left it returns a value >= length of source)
-
seek
Seeks to new position. If new position is outside of current page the new page is either taken from cache or read from file and added to cache.- Specified by:
seekin interfaceRandomAccessRead- Parameters:
newOffset- The position to seek to.- Throws:
IOException- If there is an error while seeking.
-
read
Description copied from interface:SequentialReadRead a single byte of data.- Specified by:
readin interfaceSequentialRead- Specified by:
readin classInputStream- Returns:
- The byte of data that is being read.
- Throws:
IOException- If there is an error while reading the data.
-
read
Description copied from interface:SequentialReadRead a buffer of data.- Specified by:
readin interfaceSequentialRead- Overrides:
readin classInputStream- Parameters:
b- The buffer to write the data to.off- Offset into the buffer to start writing.len- The amount of data to attempt to read.- Returns:
- The number of bytes that were actually read.
- Throws:
IOException- If there was an error while reading the data.
-
available
- Overrides:
availablein classInputStream- Throws:
IOException
-
skip
- Overrides:
skipin classInputStream- Throws:
IOException
-
length
Description copied from interface:RandomAccessReadThe total number of bytes that are available.- Specified by:
lengthin interfaceRandomAccessRead- Returns:
- The number of bytes available.
- Throws:
IOException- If there is an IO error while determining the length of the data stream.
-
close
Description copied from interface:SequentialReadRelease resources that are being held.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein interfaceSequentialRead- Overrides:
closein classInputStream- Throws:
IOException- If there is an error closing this resource.
-
getPosition()instead