DataInputStream
An input stream that expands the data reading capabilities of another input stream.
The DataInputStream
class
The DataInputStream
class is a subclass of InputStream
that reads data from an underlying input stream and provides additional methods for reading primitive data types.
val inputStream: InputStream = ...
val dataStream = inputStream.dataStream
It has all the methods of the InputStream
class.
Additional methods
The DataInputStream
class provides additional methods for reading primitive data types:
readByte()
: Reads a signed 8-bit integerreadShort()
: Reads a signed 16-bit integer in big-endian byte order.readShortBE()
: Reads a signed 16-bit integer in big-endian byte order.readShortLE()
: Reads a signed 16-bit integer in little-endian byte order.readInt()
: Reads a signed 32-bit integer in big-endian byte order.readIntBE()
: Reads a signed 32-bit integer in big-endian byte order.readIntLE()
: Reads a signed 32-bit integer in little-endian byte order.readLong()
: Reads a signed 64-bit integer in big-endian byte order.readLongBE()
: Reads a signed 64-bit integer in big-endian byte order.readLongLE()
: Reads a signed 64-bit integer in little-endian byte order.readFloat()
: Reads a 32-bit floating point number in big-endian byte order.readFloatBE()
: Reads a 32-bit floating point number in big-endian byte order.readFloatLE()
: Reads a 32-bit floating point number in little-endian byte order.readDouble()
: Reads a 64-bit floating point number in big-endian byte order.readDoubleBE()
: Reads a 64-bit floating point number in big-endian byte order.readDoubleLE()
: Reads a 64-bit floating point number in little-endian byte order.readUTF(amount: Int)
: Reads a UTF-8 encoded string of the specified length.readUTF()
: Reads a UTF-8 encoded string (length is prefixed as a unsigned 16-bit integer (big-endian) (ushort)).readUTF8(amount: Int)
: Reads a UTF-8 encoded string of the specified length.readUTF8()
: Reads a UTF-8 encoded string (length is prefixed as a unsigned 16-bit integer (big-endian) (ushort)).readUTF16(amount: Int)
: Reads a UTF-16 encoded string of the specified length.readUTF16()
: Reads a UTF-16 encoded string (length is prefixed as a unsigned 16-bit integer (big-endian) (ushort)).
Example
val inputStream = ByteArrayInputStream(byteArrayOf(0x01, 0x02, 0x03, 0x04, 0x00, 0x0B, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64))
val dataStream = inputStream.dataStream
val magic = dataStream.readInt() // 0x01020304
val string = dataStream.readUTF() // "hello world"