DataInput

public interface DataInput
Known Indirect Subclasses

Defines an interface for classes that are able to read big-endian typed data from some source. Typically, this data has been written by a class which implements DataOutput. Types that can be read include byte, 16-bit short, 32-bit int, 32-bit float, 64-bit long, 64-bit double, byte strings, and MUTF-8 strings.

MUTF-8 (Modified UTF-8) Encoding

When encoding strings as UTF, implementations of DataInput and DataOutput use a slightly modified form of UTF-8, hereafter referred to as MUTF-8. This form is identical to standard UTF-8, except:

  • Only the one-, two-, and three-byte encodings are used.
  • Code points in the range U+10000U+10ffff are encoded as a surrogate pair, each of which is represented as a three-byte encoded value.
  • The code point U+0000 is encoded in two-byte form.

Please refer to The Unicode Standard for further information about character encoding. MUTF-8 is actually closer to the (relatively less well-known) encoding CESU-8 than to UTF-8 per se.

Public Method Summary

abstract boolean
readBoolean()
Reads a boolean.
abstract byte
readByte()
Reads an 8-bit byte value.
abstract char
readChar()
Reads a big-endian 16-bit character value.
abstract double
readDouble()
Reads a big-endian 64-bit double value.
abstract float
readFloat()
Reads a big-endian 32-bit float value.
abstract void
readFully(byte[] dst)
Equivalent to readFully(dst, 0, dst.length);.
abstract void
readFully(byte[] dst, int offset, int byteCount)
Reads byteCount bytes from this stream and stores them in the byte array dst starting at offset.
abstract int
readInt()
Reads a big-endian 32-bit integer value.
abstract String
readLine()
Returns a string containing the next line of text available from this stream.
abstract long
readLong()
Reads a big-endian 64-bit long value.
abstract short
readShort()
Reads a big-endian 16-bit short value.
abstract String
readUTF()
Reads a string encoded with modified UTF-8.
abstract int
readUnsignedByte()
Reads an unsigned 8-bit byte value and returns it as an int.
abstract int
readUnsignedShort()
Reads a big-endian 16-bit unsigned short value and returns it as an int.
abstract int
skipBytes(int count)
Skips count number of bytes.

Public Methods

public abstract boolean readBoolean ()

Reads a boolean.

Returns
  • the next boolean value.
Throws
EOFException if the end of the input is reached before the read request can be satisfied.
IOException if an I/O error occurs while reading.

public abstract byte readByte ()

Reads an 8-bit byte value.

Returns
  • the next byte value.
Throws
EOFException if the end of the input is reached before the read request can be satisfied.
IOException if an I/O error occurs while reading.
See Also

public abstract char readChar ()

Reads a big-endian 16-bit character value.

Returns
  • the next char value.
Throws
EOFException if the end of the input is reached before the read request can be satisfied.
IOException if an I/O error occurs while reading.
See Also

public abstract double readDouble ()

Reads a big-endian 64-bit double value.

Returns
  • the next double value.
Throws
EOFException if the end of the input is reached before the read request can be satisfied.
IOException if an I/O error occurs while reading.

public abstract float readFloat ()

Reads a big-endian 32-bit float value.

Returns
  • the next float value.
Throws
EOFException if the end of the input is reached before the read request can be satisfied.
IOException if an I/O error occurs while reading.

public abstract void readFully (byte[] dst)

Equivalent to readFully(dst, 0, dst.length);.

Parameters
dst
Throws
IOException

public abstract void readFully (byte[] dst, int offset, int byteCount)

Reads byteCount bytes from this stream and stores them in the byte array dst starting at offset. If byteCount is zero, then this method returns without reading any bytes. Otherwise, this method blocks until byteCount bytes have been read. If insufficient bytes are available, EOFException is thrown. If an I/O error occurs, IOException is thrown. When an exception is thrown, some bytes may have been consumed from the stream and written into the array.

Parameters
dst the byte array into which the data is read.
offset the offset in dst at which to store the bytes.
byteCount the number of bytes to read.
Throws
EOFException if the end of the source stream is reached before enough bytes have been read.
IndexOutOfBoundsException if offset < 0 or byteCount < 0, or offset + byteCount > dst.length.
IOException if a problem occurs while reading from this stream.
NullPointerException if dst is null.

public abstract int readInt ()

Reads a big-endian 32-bit integer value.

Returns
  • the next int value.
Throws
EOFException if the end of the input is reached before the read request can be satisfied.
IOException if an I/O error occurs while reading.
See Also

public abstract String readLine ()

Returns a string containing the next line of text available from this stream. A line is made of zero or more characters followed by '\n', '\r', "\r\n" or the end of the stream. The string does not include the newline sequence.

Returns
  • the contents of the line or null if no characters have been read before the end of the stream.
Throws
EOFException if the end of the input is reached before the read request can be satisfied.
IOException if an I/O error occurs while reading.

public abstract long readLong ()