Class 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.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • TTFDataStream

        public TTFDataStream()
    • 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 to read(), 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 interface java.lang.AutoCloseable
        Specified by:
        close in interface java.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.