Package org.apache.fontbox.ttf
Class RandomAccessReadDataStream
- java.lang.Object
-
- org.apache.fontbox.ttf.TTFDataStream
-
- org.apache.fontbox.ttf.RandomAccessReadDataStream
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable
class RandomAccessReadDataStream extends TTFDataStream
An implementation of the TTFDataStream using RandomAccessRead as source. The underlying RandomAccessRead can be any length, but this implementation supports only bufferLengths upto Integer.MAX_VALUE.
-
-
Field Summary
Fields Modifier and Type Field Description private intcurrentPositionprivate byte[]dataprivate longlengthprivate static org.apache.commons.logging.LogLOG
-
Constructor Summary
Constructors Constructor Description RandomAccessReadDataStream(java.io.InputStream inputStream)Constructor.RandomAccessReadDataStream(RandomAccessRead randomAccessRead)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Close the underlying resources.RandomAccessReadcreateSubView(long length)Creates a view from current position topos + length.longgetCurrentPosition()Get the current position in the stream.java.io.InputStreamgetOriginalData()This will get the original data file that was used for this stream.longgetOriginalDataSize()This 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()Read a signed 32-bit integer.longreadLong()Read a signed 64-bit integer.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
-
-
-
-
Constructor Detail
-
RandomAccessReadDataStream
RandomAccessReadDataStream(RandomAccessRead randomAccessRead) throws java.io.IOException
Constructor.- Parameters:
randomAccessRead- source to be read from. Caller should close it.- Throws:
java.io.IOException- If there is a problem reading the source data.
-
RandomAccessReadDataStream
RandomAccessReadDataStream(java.io.InputStream inputStream) throws java.io.IOExceptionConstructor.- Parameters:
inputStream- source to be read from. Caller should close it.- Throws:
java.io.IOException- If there is a problem reading the source data.
-
-
Method Detail
-
getCurrentPosition
public long getCurrentPosition() throws java.io.IOExceptionGet the current position in the stream.- Specified by:
getCurrentPositionin classTTFDataStream- Returns:
- The current position in the stream.
- Throws:
java.io.IOException- If an error occurs while reading the stream.
-
close
public void close() throws java.io.IOExceptionClose the underlying resources.- Throws:
java.io.IOException- If there is an error closing the resources.
-
read
public int read() throws java.io.IOExceptionRead an unsigned byte.- Specified by:
readin classTTFDataStream- Returns:
- An unsigned byte, or -1, signalling 'no more data'
- Throws:
java.io.IOException- If there is an error reading the data.
-
readLong
public final long readLong() throws java.io.IOExceptionRead a signed 64-bit integer.- Specified by:
readLongin classTTFDataStream- Returns:
- eight bytes interpreted as a long.
- Throws:
java.io.IOException- If there is an error reading the data.
-
readInt
private int readInt() throws java.io.IOExceptionRead a signed 32-bit integer.- Returns:
- 4 bytes interpreted as an int.
- Throws:
java.io.IOException- If there is an error reading the data.
-
seek
public void seek(long pos) throws java.io.IOExceptionSeek into the datasource. When the requestedposis < 0, an IOException() is fired. When the requestedposis ≥length, thecurrentPositionis set to the first byte after thedata!- Specified by:
seekin classTTFDataStream- Parameters:
pos- The position to seek to.- Throws:
java.io.IOException- If there is an error seeking to that position.
-
read
public int read(byte[] b, int off, int len) throws java.io.IOException- 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, signalling 'no more data'
- Throws:
java.io.IOException- If there is an error reading from the stream.- See Also:
InputStream.read( byte[], int, int )
-
createSubView
public RandomAccessRead createSubView(long length)
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
-
getOriginalData
public java.io.InputStream getOriginalData() throws java.io.IOExceptionThis will get the original data file that was used for this stream.- Specified by:
getOriginalDatain classTTFDataStream- Returns:
- The data that was read from.
- Throws:
java.io.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.
-
-