@Beta @GwtIncompatible public final class LittleEndianDataInputStream extends FilterInputStream implements DataInput
DataInput that uses little-endian byte ordering for reading short, int, float, double, and long values.
 Note: This class intentionally violates the specification of its supertype DataInput, which explicitly requires big-endian byte order.
in| Constructor and Description | 
|---|
LittleEndianDataInputStream(InputStream in)
Creates a  
LittleEndianDataInputStream that wraps the given stream. | 
| Modifier and Type | Method and Description | 
|---|---|
boolean | 
readBoolean()
Reads one input byte and returns
  
true if that byte is nonzero,
 false if that byte is zero. | 
byte | 
readByte()
Reads and returns one input byte. 
 | 
char | 
readChar()
Reads a char as specified by  
DataInputStream.readChar(), except using little-endian
 byte order. | 
double | 
readDouble()
Reads a  
double as specified by DataInputStream.readDouble(), except using
 little-endian byte order. | 
float | 
readFloat()
Reads a  
float as specified by DataInputStream.readFloat(), except using
 little-endian byte order. | 
void | 
readFully(byte[] b)
Reads some bytes from an input
 stream and stores them into the buffer
 array  
b. | 
void | 
readFully(byte[] b,
         int off,
         int len)
Reads  
len
 bytes from
 an input stream. | 
int | 
readInt()
Reads an integer as specified by  
DataInputStream.readInt(), except using little-endian
 byte order. | 
String | 
readLine()
This method will throw an  
UnsupportedOperationException. | 
long | 
readLong()
Reads a  
long as specified by DataInputStream.readLong(), except using
 little-endian byte order. | 
short | 
readShort()
Reads a  
short as specified by DataInputStream.readShort(), except using
 little-endian byte order. | 
int | 
readUnsignedByte()
Reads one input byte, zero-extends
 it to type  
int, and returns
 the result, which is therefore in the range
 0
 through 255. | 
int | 
readUnsignedShort()
Reads an unsigned  
short as specified by DataInputStream.readUnsignedShort(),
 except using little-endian byte order. | 
String | 
readUTF()
Reads in a string that has been encoded using a
 modified UTF-8
 format. 
 | 
int | 
skipBytes(int n)
Makes an attempt to skip over
  
n bytes
 of data from the input
 stream, discarding the skipped bytes. | 
available, close, mark, markSupported, read, read, read, reset, skippublic LittleEndianDataInputStream(InputStream in)
LittleEndianDataInputStream that wraps the given stream.in - the stream to delegate to@CanIgnoreReturnValue public String readLine()
UnsupportedOperationException.public void readFully(byte[] b) throws IOException
java.io.DataInputb. The number of bytes
 read is equal
 to the length of b.
 This method blocks until one of the following conditions occurs:
b.length
 bytes of input data are available, in which
 case a normal return is made.
 EOFException
 is thrown.
 IOException other
 than EOFException is thrown.
 
 If b is null,
 a NullPointerException is thrown.
 If b.length is zero, then
 no bytes are read. Otherwise, the first
 byte read is stored into element b[0],
 the next one into b[1], and
 so on.
 If an exception is thrown from
 this method, then it may be that some but
 not all bytes of b have been
 updated with data from the input stream.
readFully in interface DataInputb - the buffer into which the data is read.EOFException - if this stream reaches the end before reading
               all the bytes.IOException - if an I/O error occurs.public void readFully(byte[] b, int off, int len) throws IOException
java.io.DataInputlen
 bytes from
 an input stream.
 This method blocks until one of the following conditions occurs:
len bytes
 of input data are available, in which case
 a normal return is made.
 EOFException
 is thrown.
 IOException other
 than EOFException is thrown.
 
 If b is null,
 a NullPointerException is thrown.
 If off is negative, or len
 is negative, or off+len is
 greater than the length of the array b,
 then an IndexOutOfBoundsException
 is thrown.
 If len is zero,
 then no bytes are read. Otherwise, the first
 byte read is stored into element b[off],
 the next one into b[off+1],
 and so on. The number of bytes read is,
 at most, equal to len.
readFully in interface DataInputb - the buffer into which the data is read.off - an int specifying the offset into the data.len - an int specifying the number of bytes to read.EOFException - if this stream reaches the end before reading
               all the bytes.IOException - if an I/O error occurs.public int skipBytes(int n) throws IOException
java.io.DataInputn bytes
 of data from the input
 stream, discarding the skipped bytes. However,
 it may skip
 over some smaller number of
 bytes, possibly zero. This may result from
 any of a
 number of conditions; reaching
 end of file before n bytes
 have been skipped is
 only one possibility.
 This method never throws an EOFException.
 The actual
 number of bytes skipped is returned.skipBytes in interface DataInputn - the number of bytes to be skipped.IOException - if an I/O error occurs.@CanIgnoreReturnValue public int readUnsignedByte() throws IOException
java.io.DataInputint, and returns
 the result, which is therefore in the range
 0
 through 255.
 This method is suitable for reading
 the byte written by the writeByte
 method of interface DataOutput
 if the argument to writeByte
 was intended to be a value in the range
 0 through 255.readUnsignedByte in interface DataInputEOFException - if this stream reaches the end before reading
               all the bytes.IOException - if an I/O error occurs.@CanIgnoreReturnValue public int readUnsignedShort() throws IOException
short as specified by DataInputStream.readUnsignedShort(),
 except using little-endian byte order.readUnsignedShort in interface DataInputIOException - if an I/O error occurs@CanIgnoreReturnValue public int readInt() throws IOException
DataInputStream.readInt(), except using little-endian
 byte order.readInt in interface DataInputint in little-endian
     byte orderIOException - if an I/O error occurs@CanIgnoreReturnValue public long readLong() throws IOException
long as specified by DataInputStream.readLong(), except using
 little-endian byte order.readLong in interface DataInputlong in
     little-endian byte orderIOException - if an I/O error occurs@CanIgnoreReturnValue public float readFloat() throws IOException
float as specified by DataInputStream.readFloat(), except using
 little-endian byte order.readFloat in interface DataInputfloat in
     little-endian byte orderIOException - if an I/O error occurs@CanIgnoreReturnValue public double readDouble() throws IOException
double as specified by DataInputStream.readDouble(), except using
 little-endian byte order.readDouble in interface DataInputdouble in
     little-endian byte orderIOException - if an I/O error occurs@CanIgnoreReturnValue public String readUTF() throws IOException
java.io.DataInputreadUTF
 is that it reads a representation of a Unicode
 character string encoded in modified
 UTF-8 format; this string of characters
 is then returned as a String.
 
 First, two bytes are read and used to
 construct an unsigned 16-bit integer in
 exactly the manner of the readUnsignedShort
 method . This integer value is called the
 UTF length and specifies the number
 of additional bytes to be read. These bytes
 are then converted to characters by considering
 them in groups. The length of each group
 is computed from the value of the first
 byte of the group. The byte following a
 group, if any, is the first byte of the
 next group.
 
 If the first byte of a group
 matches the bit pattern 0xxxxxxx
 (where x means "may be 0
 or 1"), then the group consists
 of just that byte. The byte is zero-extended
 to form a character.
 
 If the first byte
 of a group matches the bit pattern 110xxxxx,
 then the group consists of that byte a
 and a second byte b. If there
 is no byte b (because byte
 a was the last of the bytes
 to be read), or if byte b does
 not match the bit pattern 10xxxxxx,
 then a UTFDataFormatException
 is thrown. Otherwise, the group is converted
 to the character:
 
 (char)(((a & 0x1F) << 6) | (b & 0x3F))
 
 If the first byte of a group
 matches the bit pattern 1110xxxx,
 then the group consists of that byte a
 and two more bytes b and c.
 If there is no byte c (because
 byte a was one of the last
 two of the bytes to be read), or either
 byte b or byte c
 does not match the bit pattern 10xxxxxx,
 then a UTFDataFormatException
 is thrown. Otherwise, the group is converted
 to the character:
 
 (char)(((a & 0x0F) << 12) | ((b & 0x3F) << 6) | (c & 0x3F))
 
 If the first byte of a group matches the
 pattern 1111xxxx or the pattern
 10xxxxxx, then a UTFDataFormatException
 is thrown.
 
 If end of file is encountered
 at any time during this entire process,
 then an EOFException is thrown.
 
 After every group has been converted to
 a character by this process, the characters
 are gathered, in the same order in which
 their corresponding groups were read from
 the input stream, to form a String,
 which is returned.
 
 The writeUTF
 method of interface DataOutput
 may be used to write data that is suitable
 for reading by this method.
readUTF in interface DataInputEOFException - if this stream reaches the end
               before reading all the bytes.IOException - if an I/O error occurs.@CanIgnoreReturnValue public short readShort() throws IOException
short as specified by DataInputStream.readShort(), except using
 little-endian byte order.readShort in interface DataInputshort in little-endian
     byte order.IOException - if an I/O error occurs.@CanIgnoreReturnValue public char readChar() throws IOException
DataInputStream.readChar(), except using little-endian
 byte order.readChar in interface DataInputchar in little-endian
     byte orderIOException - if an I/O error occurs@CanIgnoreReturnValue public byte readByte() throws IOException
java.io.DataInput-128 through 127,
 inclusive.
 This method is suitable for
 reading the byte written by the writeByte
 method of interface DataOutput.readByte in interface DataInputEOFException - if this stream reaches the end before reading
               all the bytes.IOException - if an I/O error occurs.@CanIgnoreReturnValue public boolean readBoolean() throws IOException
java.io.DataInputtrue if that byte is nonzero,
 false if that byte is zero.
 This method is suitable for reading
 the byte written by the writeBoolean
 method of interface DataOutput.readBoolean in interface DataInputboolean value read.EOFException - if this stream reaches the end before reading
               all the bytes.IOException - if an I/O error occurs.Copyright © 2010–2019. All rights reserved.