org.apache.fontbox.ttf
Class TTFDataStream

java.lang.Object
  extended by org.apache.fontbox.ttf.TTFDataStream
Direct Known Subclasses:
MemoryTTFDataStream, RAFDataStream

public abstract class TTFDataStream
extends java.lang.Object

An interface into a data stream.

Version:
$Revision: 1.1 $
Author:
Ben Litchfield (ben@benlitchfield.com)

Constructor Summary
TTFDataStream()
           
 
Method Summary
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.
 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.

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.

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.

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.
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.