Package org.apache.commons.io.input

# Class SwappedDataInputStream

java.lang.Object
java.io.InputStream
java.io.FilterInputStream
org.apache.commons.io.input.ProxyInputStream
org.apache.commons.io.input.SwappedDataInputStream

All Implemented Interfaces:
  `Closeable`, `DataInput`, `AutoCloseable`

public class SwappedDataInputStream extends ProxyInputStream implements DataInput
DataInput for systems relying on little endian data formats. When read, values will be changed from little endian to big endian formats for internal usage.

Provenance: Avalon Excalibur (IO)

- ## Field Summary

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

  `in`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SwappedDataInputStream(InputStream input)`
  Constructs a SwappedDataInputStream.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `readBoolean()`
  Return ``readByte()` != 0`
  `byte`
  `readByte()`
  Invokes the delegate's `read()` method.
  `char`
  `readChar()`
  Reads a character delegating to `readShort()`.
  `double`
  `readDouble()`
  Delegates to `EndianUtils.readSwappedDouble(InputStream)`.
  `float`
  `readFloat()`
  Delegates to `EndianUtils.readSwappedFloat(InputStream)`.
  `void`
  `readFully(byte[] data)`
  Invokes the delegate's `read(byte[] data, int, int)` method.
  `void`
  `readFully(byte[] data, int offset, int length)`
  Invokes the delegate's `read(byte[] data, int, int)` method.
  `int`
  `readInt()`
  Delegates to `EndianUtils.readSwappedInteger(InputStream)`.
  `String`
  `readLine()`
  Not currently supported - throws `UnsupportedOperationException`.
  `long`
  `readLong()`
  Delegates to `EndianUtils.readSwappedLong(InputStream)`.
  `short`
  `readShort()`
  Delegates to `EndianUtils.readSwappedShort(InputStream)`.
  `int`
  `readUnsignedByte()`
  Invokes the delegate's `read()` method.
  `int`
  `readUnsignedShort()`
  Delegates to `EndianUtils.readSwappedUnsignedShort(InputStream)`.
  `String`
  `readUTF()`
  Not currently supported - throws `UnsupportedOperationException`.
  `int`
  `skipBytes(int count)`
  Invokes the delegate's `skip(int)` method.

  ### Methods inherited from class org.apache.commons.io.input.ProxyInputStream

  `afterRead, available, beforeRead, close, handleIOException, 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 Details

  - ### SwappedDataInputStream

    public SwappedDataInputStream(InputStream input)
    Constructs a SwappedDataInputStream.
    Parameters:
      `input` - InputStream to read from

- ## Method Details

  - ### readBoolean

    public boolean readBoolean() throws IOException, EOFException
    Return ``readByte()` != 0`
    Specified by:
      `readBoolean` in interface `DataInput`
    Returns:
      false if the byte read is zero, otherwise true
    Throws:
      `IOException` - if an I/O error occurs.
      `EOFException` - if an end of file is reached unexpectedly

  - ### readByte

    public byte readByte() throws IOException, EOFException
    Invokes the delegate's `read()` method.
    Specified by:
      `readByte` in interface `DataInput`
    Returns:
      the byte read or -1 if the end of stream
    Throws:
      `IOException` - if an I/O error occurs.
      `EOFException` - if an end of file is reached unexpectedly

  - ### readChar

    public char readChar() throws IOException, EOFException
    Reads a character delegating to `readShort()`.
    Specified by:
      `readChar` in interface `DataInput`
    Returns:
      the byte read or -1 if the end of stream
    Throws:
      `IOException` - if an I/O error occurs.
      `EOFException` - if an end of file is reached unexpectedly

  - ### readDouble

    public double readDouble() throws IOException, EOFException
    Delegates to `EndianUtils.readSwappedDouble(InputStream)`.
    Specified by:
      `readDouble` in interface `DataInput`
    Returns:
      the read long
    Throws:
      `IOException` - if an I/O error occurs.
      `EOFException` - if an end of file is reached unexpectedly

  - ### readFloat

    public float readFloat() throws IOException, EOFException
    Delegates to `EndianUtils.readSwappedFloat(InputStream)`.
    Specified by:
      `readFloat` in interface `DataInput`
    Returns:
      the read long
    Throws:
      `IOException` - if an I/O error occurs.
      `EOFException` - if an end of file is reached unexpectedly

  - ### readFully

    public void readFully(byte[] data) throws IOException, EOFException
    Invokes the delegate's `read(byte[] data, int, int)` method.
    Specified by:
      `readFully` in interface `DataInput`
    Parameters:
      `data` - the buffer to read the bytes into
    Throws:
      `EOFException` - if an end of file is reached unexpectedly
      `IOException` - if an I/O error occurs.

  - ### readFully

    public void readFully(byte[] data, int offset, int length) throws IOException, EOFException
    Invokes the delegate's `read(byte[] data, int, int)` method.
    Specified by:
      `readFully` in interface `DataInput`
    Parameters:
      `data` - the buffer to read the bytes into
      `offset` - The start offset
      `length` - The number of bytes to read
    Throws:
      `EOFException` - if an end of file is reached unexpectedly
      `IOException` - if an I/O error occurs.

  - ### readInt

    public int readInt() throws IOException, EOFException
    Delegates to `EndianUtils.readSwappedInteger(InputStream)`.
    Specified by:
      `readInt` in interface `DataInput`
    Returns:
      the read long
    Throws:
      `EOFException` - if an end of file is reached unexpectedly
      `IOException` - if an I/O error occurs.

  - ### readLine

    public String readLine() throws IOException, EOFException
    Not currently supported - throws `UnsupportedOperationException`.
    Specified by:
      `readLine` in interface `DataInput`
    Returns:
      the line read
    Throws:
      `EOFException` - if an end of file is reached unexpectedly
      `IOException` - if an I/O error occurs.

  - ### readLong

    public long readLong() throws IOException, EOFException
    Delegates to `EndianUtils.readSwappedLong(InputStream)`.
    Specified by:
      `readLong` in interface `DataInput`
    Returns:
      the read long
    Throws:
      `EOFException` - if an end of file is reached unexpectedly
      `IOException` - if an I/O error occurs.

  - ### readShort

    public short readShort() throws IOException, EOFException
    Delegates to `EndianUtils.readSwappedShort(InputStream)`.
    Specified by:
      `readShort` in interface `DataInput`
    Returns:
      the read long
    Throws:
      `EOFException` - if an end of file is reached unexpectedly
      `IOException` - if an I/O error occurs.

  - ### readUnsignedByte

    public int readUnsignedByte() throws IOException, EOFException
    Invokes the delegate's `read()` method.
    Specified by:
      `readUnsignedByte` in interface `DataInput`
    Returns:
      the byte read or -1 if the end of stream
    Throws:
      `EOFException` - if an end of file is reached unexpectedly
      `IOException` - if an I/O error occurs.

  - ### readUnsignedShort

    public int readUnsignedShort() throws IOException, EOFException
    Delegates to `EndianUtils.readSwappedUnsignedShort(InputStream)`.
    Specified by:
      `readUnsignedShort` in interface `DataInput`
    Returns:
      the read long
    Throws:
      `EOFException` - if an end of file is reached unexpectedly
      `IOException` - if an I/O error occurs.

  - ### readUTF

    public String readUTF() throws IOException, EOFException
    Not currently supported - throws `UnsupportedOperationException`.
    Specified by:
      `readUTF` in interface `DataInput`
    Returns:
      UTF String read
    Throws:
      `EOFException` - if an end of file is reached unexpectedly
      `IOException` - if an I/O error occurs.

  - ### skipBytes

    public int skipBytes(int count) throws IOException, EOFException
    Invokes the delegate's `skip(int)` method.
    Specified by:
      `skipBytes` in interface `DataInput`
    Parameters:
      `count` - the number of bytes to skip
    Returns:
      the number of bytes to skipped or -1 if the end of stream
    Throws:
      `EOFException` - if an end of file is reached unexpectedly
      `IOException` - if an I/O error occurs.