Package org.apache.fontbox.ttf
Class RandomAccessReadUnbufferedDataStream
java.lang.Object
org.apache.fontbox.ttf.TTFDataStream
org.apache.fontbox.ttf.RandomAccessReadUnbufferedDataStream
- All Implemented Interfaces:
Closeable,AutoCloseable
In contrast to
RandomAccessReadDataStream,
this class doesn't pre-load RandomAccessRead into a byte[],
it works with RandomAccessRead directly.
Performance: it is much faster if most of the buffer is skipped, and slower if whole buffer is read()-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final class -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Close the underlying resources.createSubView(long length) Creates a view from current position topos + length.longGet the current position in the stream.Lifetime of returned InputStream is bound bythislifetime, it won't close underlyingRandomAccessRead.longThis will get the original data size that was used for this stream.intread()Read an unsigned byte.intread(byte[] b, int off, int len) private intreadInt()final longreadLong()Read an unsigned byte.voidseek(long pos) Seek into the datasource.Methods inherited from class org.apache.fontbox.ttf.TTFDataStream
read, read32Fixed, readInternationalDate, readSignedByte, readSignedShort, readString, readString, readTag, readUnsignedByte, readUnsignedByteArray, readUnsignedInt, readUnsignedShort, readUnsignedShortArray
-
Field Details
-
length
private final long length -
randomAccessRead
-
-
Constructor Details
-
RandomAccessReadUnbufferedDataStream
RandomAccessReadUnbufferedDataStream(RandomAccessRead randomAccessRead) throws IOException - Throws:
IOException- If there is a problem reading the source length.
-
-
Method Details
-
getCurrentPosition
Get the current position in the stream.- Specified by:
getCurrentPositionin classTTFDataStream- Returns:
- The current position in the stream.
- Throws:
IOException- If an error occurs while reading the stream.
-
close
Close the underlying resources.- Throws:
IOException- If there is an error closing the resources.
-
read
Read an unsigned byte.- Specified by:
readin classTTFDataStream- Returns:
- An unsigned byte.
- Throws:
IOException- If there is an error reading the data.
-
readLong
Read an unsigned byte.- Specified by:
readLongin classTTFDataStream- Returns:
- An unsigned byte.
- Throws:
IOException- If there is an error reading the data.
-
readInt
- Throws:
IOException
-
seek
Seek into the datasource.- Specified by:
seekin classTTFDataStream- Parameters:
pos- The position to seek to.- Throws:
IOException- If there is an error seeking to that position.
-
read
- Specified by:
readin classTTFDataStream- Parameters:
b- The buffer to write to.off- The offset into the buffer.len- The length into the buffer.- Returns:
- The number of bytes read, or -1 at the end of the stream
- Throws:
IOException- If there is an error reading from the stream.- See Also:
-
getOriginalData
Lifetime of returned InputStream is bound bythislifetime, it won't close underlyingRandomAccessRead. This will get the original data file that was used for this stream.- Specified by:
getOriginalDatain classTTFDataStream- Returns:
- The data that was read from.
- Throws:
IOException- If there is an issue reading the data.
-
getOriginalDataSize
public long getOriginalDataSize()This will get the original data size that was used for this stream.- Specified by:
getOriginalDataSizein classTTFDataStream- Returns:
- The size of the original data.
-
createSubView
Description copied from class:TTFDataStreamCreates a view from current position topos + length. It can be faster thanread(length)if you only need a few bytes.SubView.close()should never closeTTFDataStream.this, only itself.- Overrides:
createSubViewin classTTFDataStream- Returns:
- A view or null (caller can use
TTFDataStream.read()instead). Please close() the result
-