com.google.common.io

## Class LittleEndianDataInputStream

- java.lang.Object
- - java.io.InputStream
  - - java.io.FilterInputStream
    - - com.google.common.io.LittleEndianDataInputStream

- All Implemented Interfaces:
    java.io.Closeable, java.io.DataInput, java.lang.AutoCloseable

      @Beta
      public final class LittleEndianDataInputStream
      extends java.io.FilterInputStream
      implements java.io.DataInput

  An implementation of `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.

  Since:
    8.0

- - ### Field Summary

    - ### Fields inherited from class java.io.FilterInputStream

      `in`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `LittleEndianDataInputStream(java.io.InputStream in)` Creates a `LittleEndianDataInputStream` that wraps the given stream.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `readBoolean()`
    `byte` | `readByte()`
    `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)`
    `void` | `readFully(byte[] b, int off, int len)`
    `int` | `readInt()` Reads an integer as specified by `DataInputStream.readInt()`, except using little-endian byte order.
    `java.lang.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()`
    `int` | `readUnsignedShort()` Reads an unsigned `short` as specified by `DataInputStream.readUnsignedShort()`, except using little-endian byte order.
    `java.lang.String` | `readUTF()`
    `int` | `skipBytes(int n)`

    - ### Methods inherited from class java.io.FilterInputStream

      `available, close, mark, markSupported, read, read, read, reset, skip`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### LittleEndianDataInputStream

          public LittleEndianDataInputStream(java.io.InputStream in)

      Creates a `LittleEndianDataInputStream` that wraps the given stream.
      Parameters:
        `in` - the stream to delegate to

  - ### Method Detail

    - #### readLine

          public java.lang.String readLine()

      This method will throw an `UnsupportedOperationException`.
      Specified by:
        `readLine` in interface `java.io.DataInput`

    - #### readFully

          public void readFully(byte[] b)
                         throws java.io.IOException

      Specified by:
        `readFully` in interface `java.io.DataInput`
      Throws:
        `java.io.IOException`

    - #### readFully

          public void readFully(byte[] b,
                       int off,
                       int len)
                         throws java.io.IOException

      Specified by:
        `readFully` in interface `java.io.DataInput`
      Throws:
        `java.io.IOException`

    - #### skipBytes

          public int skipBytes(int n)
                        throws java.io.IOException

      Specified by:
        `skipBytes` in interface `java.io.DataInput`
      Throws:
        `java.io.IOException`

    - #### readUnsignedByte

          public int readUnsignedByte()
                               throws java.io.IOException

      Specified by:
        `readUnsignedByte` in interface `java.io.DataInput`
      Throws:
        `java.io.IOException`

    - #### readUnsignedShort

          public int readUnsignedShort()
                                throws java.io.IOException

      Reads an unsigned `short` as specified by `DataInputStream.readUnsignedShort()`, except using little-endian byte order.
      Specified by:
        `readUnsignedShort` in interface `java.io.DataInput`
      Returns:
        the next two bytes of the input stream, interpreted as an unsigned 16-bit integer in little-endian byte order
      Throws:
        `java.io.IOException` - if an I/O error occurs

    - #### readInt

          public int readInt()
                      throws java.io.IOException

      Reads an integer as specified by `DataInputStream.readInt()`, except using little-endian byte order.
      Specified by:
        `readInt` in interface `java.io.DataInput`
      Returns:
        the next four bytes of the input stream, interpreted as an `int` in little-endian byte order
      Throws:
        `java.io.IOException` - if an I/O error occurs

    - #### readLong

          public long readLong()
                        throws java.io.IOException

      Reads a `long` as specified by `DataInputStream.readLong()`, except using little-endian byte order.
      Specified by:
        `readLong` in interface `java.io.DataInput`
      Returns:
        the next eight bytes of the input stream, interpreted as a `long` in little-endian byte order
      Throws:
        `java.io.IOException` - if an I/O error occurs

    - #### readFloat

          public float readFloat()
                          throws java.io.IOException

      Reads a `float` as specified by `DataInputStream.readFloat()`, except using little-endian byte order.
      Specified by:
        `readFloat` in interface `java.io.DataInput`
      Returns:
        the next four bytes of the input stream, interpreted as a `float` in little-endian byte order
      Throws:
        `java.io.IOException` - if an I/O error occurs

    - #### readDouble

          public double readDouble()
                            throws java.io.IOException

      Reads a `double` as specified by `DataInputStream.readDouble()`, except using little-endian byte order.
      Specified by:
        `readDouble` in interface `java.io.DataInput`
      Returns:
        the next eight bytes of the input stream, interpreted as a `double` in little-endian byte order
      Throws:
        `java.io.IOException` - if an I/O error occurs

    - #### readUTF

          public java.lang.String readUTF()
                                   throws java.io.IOException

      Specified by:
        `readUTF` in interface `java.io.DataInput`
      Throws:
        `java.io.IOException`

    - #### readShort

          public short readShort()
                          throws java.io.IOException

      Reads a `short` as specified by `DataInputStream.readShort()`, except using little-endian byte order.
      Specified by:
        `readShort` in interface `java.io.DataInput`
      Returns:
        the next two bytes of the input stream, interpreted as a `short` in little-endian byte order.
      Throws:
        `java.io.IOException` - if an I/O error occurs.

    - #### readChar

          public char readChar()
                        throws java.io.IOException

      Reads a char as specified by `DataInputStream.readChar()`, except using little-endian byte order.
      Specified by:
        `readChar` in interface `java.io.DataInput`
      Returns:
        the next two bytes of the input stream, interpreted as a `char` in little-endian byte order
      Throws:
        `java.io.IOException` - if an I/O error occurs

    - #### readByte

          public byte readByte()
                        throws java.io.IOException

      Specified by:
        `readByte` in interface `java.io.DataInput`
      Throws:
        `java.io.IOException`

    - #### readBoolean

          public boolean readBoolean()
                              throws java.io.IOException

      Specified by:
        `readBoolean` in interface `java.io.DataInput`
      Throws:
        `java.io.IOException`