public interface DataInput
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.
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:
U+10000
…
U+10ffff
are encoded as a surrogate pair, each of which is
represented as a three-byte encoded value.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.
DataInputStream
,
RandomAccessFile
Modifier and Type | Method and Description |
---|---|
boolean |
readBoolean()
Reads a boolean.
|
byte |
readByte()
Reads an 8-bit byte value.
|
char |
readChar()
Reads a big-endian 16-bit character value.
|
double |
readDouble()
Reads a big-endian 64-bit double value.
|
float |
readFloat()
Reads a big-endian 32-bit float value.
|
void |
readFully(byte[] dst)
Equivalent to
readFully(dst, 0, dst.length); . |
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 . |
int |
readInt()
Reads a big-endian 32-bit integer value.
|
String |
readLine()
Returns a string containing the next line of text available from this
stream.
|
long |
readLong()
Reads a big-endian 64-bit long value.
|
short |
readShort()
Reads a big-endian 16-bit short value.
|
int |
readUnsignedByte()
Reads an unsigned 8-bit byte value and returns it as an int.
|
int |
readUnsignedShort()
Reads a big-endian 16-bit unsigned short value and returns it as an int.
|
String |
readUTF()
Reads a string encoded with
modified UTF-8 . |
int |
skipBytes(int count)
Skips
count number of bytes. |
boolean readBoolean() throws IOException
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.DataOutput.writeBoolean(boolean)
byte readByte() throws IOException
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.DataOutput.writeByte(int)
char readChar() throws IOException
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.DataOutput.writeChar(int)
double readDouble() throws IOException
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.DataOutput.writeDouble(double)
float readFloat() throws IOException
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.DataOutput.writeFloat(float)
void readFully(byte[] dst) throws IOException
readFully(dst, 0, dst.length);
.IOException
void readFully(byte[] dst, int offset, int byteCount) throws IOException
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.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.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.int readInt() throws IOException
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.DataOutput.writeInt(int)
String readLine() throws IOException
'\n'
, '\r'
, "\r\n"
or the end of the stream. The string
does not include the newline sequence.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.long readLong() throws IOException
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.DataOutput.writeLong(long)
short readShort() throws IOException
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.DataOutput.writeShort(int)
int readUnsignedByte() throws IOException
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.DataOutput.writeByte(int)
int readUnsignedShort() throws IOException
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.DataOutput.writeShort(int)
String readUTF() throws IOException
modified UTF-8
.modified UTF-8
.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.DataOutput.writeUTF(java.lang.String)
int skipBytes(int count) throws IOException
count
number of bytes. This method will not throw an
EOFException
if the end of the input is reached before
count
bytes where skipped.count
- the number of bytes to skip.IOException
- if a problem occurs during skipping.