Class TTFDataStream

java.lang.Object
org.apache.fontbox.ttf.TTFDataStream
All Implemented Interfaces:
Closeable, AutoCloseable
Direct Known Subclasses:
MemoryTTFDataStream, RAFDataStream

public abstract class TTFDataStream extends Object implements Closeable
An interface into a data stream.
Author:
Ben Litchfield (ben@benlitchfield.com)
  • Constructor Details

    • TTFDataStream

      public TTFDataStream()
  • Method Details

    • read32Fixed

      public float read32Fixed() throws 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:
      IOException - If there is an error reading the data.
    • readString

      public String readString(int length) throws IOException
      Read a fixed length ascii string.
      Parameters:
      length - The length of the string to read.
      Returns:
      A string of the desired length.
      Throws:
      IOException - If there is an error reading the data.
    • readString

      public String readString(int length, String charset) throws 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:
      IOException - If there is an error reading the data.
    • read

      public abstract int read() throws IOException
      Read an unsigned byte.
      Returns:
      An unsigned byte.
      Throws:
      IOException - If there is an error reading the data.
    • readLong

      public abstract long readLong() throws IOException
      Read an unsigned byte.
      Returns:
      An unsigned byte.
      Throws:
      IOException - If there is an error reading the data.
    • readSignedByte

      public int readSignedByte() throws IOException
      Read a signed byte.
      Returns:
      A signed byte.
      Throws:
      IOException - If there is an error reading the data.
    • readUnsignedByte

      public int readUnsignedByte() throws IOException
      Read a unsigned byte. Similar to read(), but throws an exception if EOF is unexpectedly reached.
      Returns:
      A unsigned byte.
      Throws:
      IOException - If there is an error reading the data.
    • readUnsignedInt

      public long readUnsignedInt() throws IOException
      Read an unsigned integer.
      Returns:
      An unsiged integer.
      Throws:
      IOException - If there is an error reading the data.
    • readUnsignedShort

      public abstract int readUnsignedShort() throws IOException
      Read an unsigned short.
      Returns:
      An unsigned short.
      Throws:
      IOException - If there is an error reading the data.
    • readUnsignedByteArray

      public int[] readUnsignedByteArray(int length) throws IOException
      Read an unsigned byte array.
      Parameters:
      length - the length of the array to be read
      Returns:
      An unsigned byte array.
      Throws:
      IOException - If there is an error reading the data.
    • readUnsignedShortArray

      public int[] readUnsignedShortArray(int length) throws IOException
      Read an unsigned short array.
      Parameters:
      length - The length of the array to read.
      Returns:
      An unsigned short array.
      Throws:
      IOException - If there is an error reading the data.
    • readSignedShort

      public abstract short readSignedShort() throws IOException
      Read an signed short.
      Returns:
      An signed short.
      Throws:
      IOException - If there is an error reading the data.
    • readInternationalDate

      public Calendar readInternationalDate() throws IOException
      Read an eight byte international date.
      Returns:
      An signed short.
      Throws:
      IOException - If there is an error reading the data.
    • close

      public abstract void close() throws IOException
      Close the underlying resources.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Throws:
      IOException - If there is an error closing the resources.
    • seek

      public abstract void seek(long pos) throws IOException
      Seek into the datasource.
      Parameters:
      pos - The position to seek to.
      Throws:
      IOException - If there is an error seeking to that position.
    • read

      public byte[] read(int numberOfBytes) throws IOException
      Read a specific number of bytes from the stream.
      Parameters:
      numberOfBytes - The number of bytes to read.
      Returns:
      The byte buffer.
      Throws:
      IOException - If there is an error while reading.
    • read

      public abstract int read(byte[] b, int off, int len) throws 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:
      IOException - If there is an error reading from the stream.
      See Also:
    • getCurrentPosition

      public abstract long getCurrentPosition() throws IOException
      Get the current position in the stream.
      Returns:
      The current position in the stream.
      Throws:
      IOException - If an error occurs while reading the stream.
    • getOriginalData

      public abstract InputStream getOriginalData() throws IOException
      This will get the original data file that was used for this stream.
      Returns:
      The data that was read from.
      Throws:
      IOException - If there is an issue reading the data.