Package org.apache.fontbox.ttf
Class TTFDataStream
- java.lang.Object
-
- org.apache.fontbox.ttf.TTFDataStream
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
- Direct Known Subclasses:
MemoryTTFDataStream
,RAFDataStream
public abstract class TTFDataStream extends java.lang.Object implements java.io.Closeable
An interface into a data stream.- Author:
- Ben Litchfield (ben@benlitchfield.com)
-
-
Constructor Summary
Constructors Constructor Description TTFDataStream()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract void
close()
Close the underlying resources.abstract long
getCurrentPosition()
Get the current position in the stream.abstract java.io.InputStream
getOriginalData()
This will get the original data file that was used for this stream.abstract int
read()
Read an unsigned byte.abstract int
read(byte[] b, int off, int len)
byte[]
read(int numberOfBytes)
Read a specific number of bytes from the stream.float
read32Fixed()
Read a 16.16 fixed value, where the first 16 bits are the decimal and the last 16 bits are the fraction.java.util.Calendar
readInternationalDate()
Read an eight byte international date.abstract long
readLong()
Read an unsigned byte.int
readSignedByte()
Read a signed byte.abstract short
readSignedShort()
Read an signed short.java.lang.String
readString(int length)
Read a fixed length ascii string.java.lang.String
readString(int length, java.lang.String charset)
Read a fixed length ascii string.int
readUnsignedByte()
Read a unsigned byte.int[]
readUnsignedByteArray(int length)
Read an unsigned byte array.long
readUnsignedInt()
Read an unsigned integer.abstract int
readUnsignedShort()
Read an unsigned short.int[]
readUnsignedShortArray(int length)
Read an unsigned short array.abstract void
seek(long pos)
Seek into the datasource.
-
-
-
Method Detail
-
read32Fixed
public float read32Fixed() throws java.io.IOException
Read a 16.16 fixed value, where the first 16 bits are the decimal and the last 16 bits are the fraction.- Returns:
- A 32 bit value.
- Throws:
java.io.IOException
- If there is an error reading the data.
-
readString
public java.lang.String readString(int length) throws java.io.IOException
Read a fixed length ascii string.- Parameters:
length
- The length of the string to read.- Returns:
- A string of the desired length.
- Throws:
java.io.IOException
- If there is an error reading the data.
-
readString
public java.lang.String readString(int length, java.lang.String charset) throws java.io.IOException
Read a fixed length ascii string.- Parameters:
length
- The length of the string to read in bytes.charset
- The expected character set of the string.- Returns:
- A string of the desired length.
- Throws:
java.io.IOException
- If there is an error reading the data.
-
read
public abstract int read() throws java.io.IOException
Read an unsigned byte.- Returns:
- An unsigned byte.
- Throws:
java.io.IOException
- If there is an error reading the data.
-
readLong
public abstract long readLong() throws java.io.IOException
Read an unsigned byte.- Returns:
- An unsigned byte.
- Throws:
java.io.IOException
- If there is an error reading the data.
-
readSignedByte
public int readSignedByte() throws java.io.IOException
Read a signed byte.- Returns:
- A signed byte.
- Throws:
java.io.IOException
- If there is an error reading the data.
-
readUnsignedByte
public int readUnsignedByte() throws java.io.IOException
Read a unsigned byte. Similar toread()
, but throws an exception if EOF is unexpectedly reached.- Returns:
- A unsigned byte.
- Throws:
java.io.IOException
- If there is an error reading the data.
-
readUnsignedInt
public long readUnsignedInt() throws java.io.IOException
Read an unsigned integer.- Returns:
- An unsiged integer.
- Throws:
java.io.IOException
- If there is an error reading the data.
-
readUnsignedShort
public abstract int readUnsignedShort() throws java.io.IOException
Read an unsigned short.- Returns:
- An unsigned short.
- Throws:
java.io.IOException
- If there is an error reading the data.
-
readUnsignedByteArray
public int[] readUnsignedByteArray(int length) throws java.io.IOException
Read an unsigned byte array.- Parameters:
length
- the length of the array to be read- Returns:
- An unsigned byte array.
- Throws:
java.io.IOException
- If there is an error reading the data.
-
readUnsignedShortArray
public int[] readUnsignedShortArray(int length) throws java.io.IOException
Read an unsigned short array.- Parameters:
length
- The length of the array to read.- Returns:
- An unsigned short array.
- Throws:
java.io.IOException
- If there is an error reading the data.
-
readSignedShort
public abstract short readSignedShort() throws java.io.IOException
Read an signed short.- Returns:
- An signed short.
- Throws:
java.io.IOException
- If there is an error reading the data.
-
readInternationalDate
public java.util.Calendar readInternationalDate() throws java.io.IOException
Read an eight byte international date.- Returns:
- An signed short.
- Throws:
java.io.IOException
- If there is an error reading the data.
-
close
public abstract void close() throws java.io.IOException
Close the underlying resources.- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Throws:
java.io.IOException
- If there is an error closing the resources.
-
seek
public abstract void seek(long pos) throws java.io.IOException
Seek into the datasource.- Parameters:
pos
- The position to seek to.- Throws:
java.io.IOException
- If there is an error seeking to that position.
-
read
public byte[] read(int numberOfBytes) throws java.io.IOException
Read a specific number of bytes from the stream.- Parameters:
numberOfBytes
- The number of bytes to read.- Returns:
- The byte buffer.
- Throws:
java.io.IOException
- If there is an error while reading.
-
read
public abstract int read(byte[] b, int off, int len) throws java.io.IOException
- 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:
java.io.IOException
- If there is an error reading from the stream.- See Also:
InputStream.read(byte[], int, int )
-
getCurrentPosition
public abstract long getCurrentPosition() throws java.io.IOException
Get the current position in the stream.- Returns:
- The current position in the stream.
- Throws:
java.io.IOException
- If an error occurs while reading the stream.
-
getOriginalData
public abstract java.io.InputStream getOriginalData() throws java.io.IOException
This will get the original data file that was used for this stream.- Returns:
- The data that was read from.
- Throws:
java.io.IOException
- If there is an issue reading the data.
-
-