jj2000.j2k.io
Interface BinaryDataInput

All Known Subinterfaces:
RandomAccessIO
All Known Implementing Classes:
BEBufferedRandomAccessFile, BufferedRandomAccessFile, ISRandomAccessIO

public interface BinaryDataInput

This interface defines the input of binary data from streams and/or files.

Byte level input (i.e., for byte, int, long, float, etc.) should always be byte aligned. For example, a request to read an int should always realign the input at the byte level.

The implementation of this interface should clearly define if multi-byte input data is read in little- or big-endian byte ordering (least significant byte first or most significant byte first, respectively).

See Also:
EndianType

Method Summary
 int getByteOrdering()
          Returns the endianess (i.e., byte ordering) of the implementing class.
 byte readByte()
          Should read a signed byte (i.e., 8 bit) from the input.
 double readDouble()
          Should read an IEEE double precision (i.e., 64 bit) floating-point number from the input.
 float readFloat()
          Should read an IEEE single precision (i.e., 32 bit) floating-point number from the input.
 int readInt()
          Should read a signed int (i.e., 32 bit) from the input.
 long readLong()
          Should read a signed long (i.e., 64 bit) from the input.
 short readShort()
          Should read a signed short (i.e., 16 bit) from the input.
 int readUnsignedByte()
          Should read an unsigned byte (i.e., 8 bit) from the input.
 long readUnsignedInt()
          Should read an unsigned int (i.e., 32 bit) from the input.
 int readUnsignedShort()
          Should read an unsigned short (i.e., 16 bit) from the input.
 int skipBytes(int n)
          Skips n bytes from the input.
 

Method Detail

readByte

public byte readByte()
              throws java.io.EOFException,
                     java.io.IOException
Should read a signed byte (i.e., 8 bit) from the input. reading, the input should be realigned at the byte level.

Returns:
The next byte-aligned signed byte (8 bit) from the input.
Throws:
java.io.EOFException - If the end-of file was reached before getting all the necessary data.
java.io.IOException - If an I/O error ocurred.

readUnsignedByte

public int readUnsignedByte()
                     throws java.io.EOFException,
                            java.io.IOException
Should read an unsigned byte (i.e., 8 bit) from the input. It is returned as an int since Java does not have an unsigned byte type. Prior to reading, the input should be realigned at the byte level.

Returns:
The next byte-aligned unsigned byte (8 bit) from the input, as an int.
Throws:
java.io.EOFException - If the end-of file was reached before getting all the necessary data.
java.io.IOException - If an I/O error ocurred.

readShort

public short readShort()
                throws java.io.EOFException,
                       java.io.IOException
Should read a signed short (i.e., 16 bit) from the input. Prior to reading, the input should be realigned at the byte level.

Returns:
The next byte-aligned signed short (16 bit) from the input.
Throws:
java.io.EOFException - If the end-of file was reached before getting all the necessary data.
java.io.IOException - If an I/O error ocurred.

readUnsignedShort

public int readUnsignedShort()
                      throws java.io.EOFException,
                             java.io.IOException
Should read an unsigned short (i.e., 16 bit) from the input. It is returned as an int since Java does not have an unsigned short type. Prior to reading, the input should be realigned at the byte level.

Returns:
The next byte-aligned unsigned short (16 bit) from the input, as an int.
Throws:
java.io.EOFException - If the end-of file was reached before getting all the necessary data.
java.io.IOException - If an I/O error ocurred.

readInt

public int readInt()
            throws java.io.EOFException,
                   java.io.IOException
Should read a signed int (i.e., 32 bit) from the input. Prior to reading, the input should be realigned at the byte level.

Returns:
The next byte-aligned signed int (32 bit) from the input.
Throws:
java.io.EOFException - If the end-of file was reached before getting all the necessary data.
java.io.IOException - If an I/O error ocurred.

readUnsignedInt

public long readUnsignedInt()
                     throws java.io.EOFException,
                            java.io.IOException
Should read an unsigned int (i.e., 32 bit) from the input. It is returned as a long since Java does not have an unsigned short type. Prior to reading, the input should be realigned at the byte level.

Returns:
The next byte-aligned unsigned int (32 bit) from the input, as a long.
Throws:
java.io.EOFException - If the end-of file was reached before getting all the necessary data.
java.io.IOException - If an I/O error ocurred.

readLong

public long readLong()
              throws java.io.EOFException,
                     java.io.IOException
Should read a signed long (i.e., 64 bit) from the input. Prior to reading, the input should be realigned at the byte level.

Returns:
The next byte-aligned signed long (64 bit) from the input.
Throws:
java.io.EOFException - If the end-of file was reached before getting all the necessary data.
java.io.IOException - If an I/O error ocurred.

readFloat

public float readFloat()
                throws java.io.EOFException,
                       java.io.IOException
Should read an IEEE single precision (i.e., 32 bit) floating-point number from the input. Prior to reading, the input should be realigned at the byte level.

Returns:
The next byte-aligned IEEE float (32 bit) from the input.
Throws:
java.io.EOFException - If the end-of file was reached before getting all the necessary data.
java.io.IOException - If an I/O error ocurred.

readDouble

public double readDouble()
                  throws java.io.EOFException,
                         java.io.IOException
Should read an IEEE double precision (i.e., 64 bit) floating-point number from the input. Prior to reading, the input should be realigned at the byte level.

Returns:
The next byte-aligned IEEE double (64 bit) from the input.
Throws:
java.io.EOFException - If the end-of file was reached before getting all the necessary data.
java.io.IOException - If an I/O error ocurred.

getByteOrdering

public int getByteOrdering()
Returns the endianess (i.e., byte ordering) of the implementing class. Note that an implementing class may implement only one type of endianness or both, which would be decided at creatiuon time.

Returns:
Either EndianType.BIG_ENDIAN or EndianType.LITTLE_ENDIAN
See Also:
EndianType

skipBytes

public int skipBytes(int n)
              throws java.io.EOFException,
                     java.io.IOException
Skips n bytes from the input. Prior to skipping, the input should be realigned at the byte level.

Parameters:
n - The number of bytes to skip
Throws:
java.io.EOFException - If the end-of file was reached before all the bytes could be skipped.
java.io.IOException - If an I/O error ocurred.