Android APIs
Added in API level 1
public interface

DataInput

java.io.DataInput
Known Indirect Subclasses

Class Overview

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.

Summary

Public Methods
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 ()

Added in API level 1

Reads a boolean.

Returns
boolean 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 ()

Added in API level 1

Reads an 8-bit byte value.

Returns
byte 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 ()

Added in API level 1

Reads a big-endian 16-bit character value.

Returns
char 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 ()

Added in API level 1

Reads a big-endian 64-bit double value.

Returns
double 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 ()

Added in API level 1

Reads a big-endian 32-bit float value.

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

See also:

public abstract void readFully (byte[] dst)

Added in API level 1

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

Parameters
dst
Throws
IOException

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

Added in API level 1

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 ()

Added in API level 1

Reads a big-endian 32-bit integer value.

Returns
int 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 ()

Added in API level 1

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
String 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 ()

Added in API level 1

Reads a big-endian 64-bit long value.

Returns
long the next long 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 short readShort ()

Added in API level 1

Reads a big-endian 16-bit short value.

Returns
short the next short 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 readUTF ()

Added in API level 1

Reads a string encoded with modified UTF-8.

Returns
String the next string encoded with modified UTF-8.
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 int readUnsignedByte ()

Added in API level 1

Reads an unsigned 8-bit byte value and returns it as an int.

Returns
int the next unsigned 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 int readUnsignedShort ()

Added in API level 1

Reads a big-endian 16-bit unsigned short value and returns it as an int.

Returns
int the next unsigned short 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 int skipBytes (int count)

Added in API level 1

Skips count number of bytes. This method will not throw an EOFException if the end of the input is reached before count bytes where skipped.

Parameters
count the number of bytes to skip.
Returns
int the number of bytes actually skipped.
Throws
IOException if a problem occurs during skipping.