Package org.apache.commons.io

# Class EndianUtils

java.lang.Object
org.apache.commons.io.EndianUtils

public class EndianUtils extends Object
Helps with different endian systems.

Different computer architectures adopt different conventions for byte ordering. In so-called "Little Endian" architectures (eg Intel), the low-order byte is stored in memory at the lowest address, and subsequent bytes at higher addresses. For "Big Endian" architectures (eg Motorola), the situation is reversed. This class helps you solve this incompatibility.

Provenance: Excalibur

See Also:
  - `SwappedDataInputStream`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `EndianUtils()`
  Instances should NOT be constructed in standard programming.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static double`
  `readSwappedDouble(byte[] data, int offset)`
  Reads a "double" value from a byte array at a given offset.
  `static double`
  `readSwappedDouble(InputStream input)`
  Reads a "double" value from an InputStream.
  `static float`
  `readSwappedFloat(byte[] data, int offset)`
  Reads a "float" value from a byte array at a given offset.
  `static float`
  `readSwappedFloat(InputStream input)`
  Reads a "float" value from an InputStream.
  `static int`
  `readSwappedInteger(byte[] data, int offset)`
  Reads an "int" value from a byte array at a given offset.
  `static int`
  `readSwappedInteger(InputStream input)`
  Reads an "int" value from an InputStream.
  `static long`
  `readSwappedLong(byte[] data, int offset)`
  Reads a "long" value from a byte array at a given offset.
  `static long`
  `readSwappedLong(InputStream input)`
  Reads a "long" value from an InputStream.
  `static short`
  `readSwappedShort(byte[] data, int offset)`
  Reads a "short" value from a byte array at a given offset.
  `static short`
  `readSwappedShort(InputStream input)`
  Reads a "short" value from an InputStream.
  `static long`
  `readSwappedUnsignedInteger(byte[] data, int offset)`
  Reads an unsigned integer (32-bit) value from a byte array at a given offset.
  `static long`
  `readSwappedUnsignedInteger(InputStream input)`
  Reads an unsigned integer (32-bit) from an InputStream.
  `static int`
  `readSwappedUnsignedShort(byte[] data, int offset)`
  Reads an unsigned short (16-bit) value from a byte array at a given offset.
  `static int`
  `readSwappedUnsignedShort(InputStream input)`
  Reads an unsigned short (16-bit) from an InputStream.
  `static double`
  `swapDouble(double value)`
  Converts a "double" value between endian systems.
  `static float`
  `swapFloat(float value)`
  Converts a "float" value between endian systems.
  `static int`
  `swapInteger(int value)`
  Converts an "int" value between endian systems.
  `static long`
  `swapLong(long value)`
  Converts a "long" value between endian systems.
  `static short`
  `swapShort(short value)`
  Converts a "short" value between endian systems.
  `static void`
  `writeSwappedDouble(byte[] data, int offset, double value)`
  Writes a "double" value to a byte array at a given offset.
  `static void`
  `writeSwappedDouble(OutputStream output, double value)`
  Writes a "double" value to an OutputStream.
  `static void`
  `writeSwappedFloat(byte[] data, int offset, float value)`
  Writes a "float" value to a byte array at a given offset.
  `static void`
  `writeSwappedFloat(OutputStream output, float value)`
  Writes a "float" value to an OutputStream.
  `static void`
  `writeSwappedInteger(byte[] data, int offset, int value)`
  Writes an "int" value to a byte array at a given offset.
  `static void`
  `writeSwappedInteger(OutputStream output, int value)`
  Writes an "int" value to an OutputStream.
  `static void`
  `writeSwappedLong(byte[] data, int offset, long value)`
  Writes a "long" value to a byte array at a given offset.
  `static void`
  `writeSwappedLong(OutputStream output, long value)`
  Writes a "long" value to an OutputStream.
  `static void`
  `writeSwappedShort(byte[] data, int offset, short value)`
  Writes a "short" value to a byte array at a given offset.
  `static void`
  `writeSwappedShort(OutputStream output, short value)`
  Writes a "short" value to an OutputStream.

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

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

- ## Constructor Details

  - ### EndianUtils

    public EndianUtils()
    Instances should NOT be constructed in standard programming.

- ## Method Details

  - ### readSwappedDouble

    public static double readSwappedDouble(byte[] data, int offset)
    Reads a "double" value from a byte array at a given offset. The value is converted to the opposed endian system while reading.
    Parameters:
      `data` - source byte array
      `offset` - starting offset in the byte array
    Returns:
      the value read

  - ### readSwappedDouble

    public static double readSwappedDouble(InputStream input) throws IOException
    Reads a "double" value from an InputStream. The value is converted to the opposed endian system while reading.
    Parameters:
      `input` - source InputStream
    Returns:
      the value just read
    Throws:
      `IOException` - in case of an I/O problem

  - ### readSwappedFloat

    public static float readSwappedFloat(byte[] data, int offset)
    Reads a "float" value from a byte array at a given offset. The value is converted to the opposed endian system while reading.
    Parameters:
      `data` - source byte array
      `offset` - starting offset in the byte array
    Returns:
      the value read

  - ### readSwappedFloat

    public static float readSwappedFloat(InputStream input) throws IOException
    Reads a "float" value from an InputStream. The value is converted to the opposed endian system while reading.
    Parameters:
      `input` - source InputStream
    Returns:
      the value just read
    Throws:
      `IOException` - in case of an I/O problem

  - ### readSwappedInteger

    public static int readSwappedInteger(byte[] data, int offset)
    Reads an "int" value from a byte array at a given offset. The value is converted to the opposed endian system while reading.
    Parameters:
      `data` - source byte array
      `offset` - starting offset in the byte array
    Returns:
      the value read

  - ### readSwappedInteger

    public static int readSwappedInteger(InputStream input) throws IOException
    Reads an "int" value from an InputStream. The value is converted to the opposed endian system while reading.
    Parameters:
      `input` - source InputStream
    Returns:
      the value just read
    Throws:
      `IOException` - in case of an I/O problem

  - ### readSwappedLong

    public static long readSwappedLong(byte[] data, int offset)
    Reads a "long" value from a byte array at a given offset. The value is converted to the opposed endian system while reading.
    Parameters:
      `data` - source byte array
      `offset` - starting offset in the byte array
    Returns:
      the value read

  - ### readSwappedLong

    public static long readSwappedLong(InputStream input) throws IOException
    Reads a "long" value from an InputStream. The value is converted to the opposed endian system while reading.
    Parameters:
      `input` - source InputStream
    Returns:
      the value just read
    Throws:
      `IOException` - in case of an I/O problem

  - ### readSwappedShort

    public static short readSwappedShort(byte[] data, int offset)
    Reads a "short" value from a byte array at a given offset. The value is converted to the opposed endian system while reading.
    Parameters:
      `data` - source byte array
      `offset` - starting offset in the byte array
    Returns:
      the value read

  - ### readSwappedShort

    public static short readSwappedShort(InputStream input) throws IOException
    Reads a "short" value from an InputStream. The value is converted to the opposed endian system while reading.
    Parameters:
      `input` - source InputStream
    Returns:
      the value just read
    Throws:
      `IOException` - in case of an I/O problem

  - ### readSwappedUnsignedInteger

    public static long readSwappedUnsignedInteger(byte[] data, int offset)
    Reads an unsigned integer (32-bit) value from a byte array at a given offset. The value is converted to the opposed endian system while reading.
    Parameters:
      `data` - source byte array
      `offset` - starting offset in the byte array
    Returns:
      the value read

  - ### readSwappedUnsignedInteger

    public static long readSwappedUnsignedInteger(InputStream input) throws IOException
    Reads an unsigned integer (32-bit) from an InputStream. The value is converted to the opposed endian system while reading.
    Parameters:
      `input` - source InputStream
    Returns:
      the value just read
    Throws:
      `IOException` - in case of an I/O problem

  - ### readSwappedUnsignedShort

    public static int readSwappedUnsignedShort(byte[] data, int offset)
    Reads an unsigned short (16-bit) value from a byte array at a given offset. The value is converted to the opposed endian system while reading.
    Parameters:
      `data` - source byte array
      `offset` - starting offset in the byte array
    Returns:
      the value read

  - ### readSwappedUnsignedShort

    public static int readSwappedUnsignedShort(InputStream input) throws IOException
    Reads an unsigned short (16-bit) from an InputStream. The value is converted to the opposed endian system while reading.
    Parameters:
      `input` - source InputStream
    Returns:
      the value just read
    Throws:
      `IOException` - in case of an I/O problem

  - ### swapDouble

    public static double swapDouble(double value)
    Converts a "double" value between endian systems.
    Parameters:
      `value` - value to convert
    Returns:
      the converted value

  - ### swapFloat

    public static float swapFloat(float value)
    Converts a "float" value between endian systems.
    Parameters:
      `value` - value to convert
    Returns:
      the converted value

  - ### swapInteger

    public static int swapInteger(int value)
    Converts an "int" value between endian systems.
    Parameters:
      `value` - value to convert
    Returns:
      the converted value

  - ### swapLong

    public static long swapLong(long value)
    Converts a "long" value between endian systems.
    Parameters:
      `value` - value to convert
    Returns:
      the converted value

  - ### swapShort

    public static short swapShort(short value)
    Converts a "short" value between endian systems.
    Parameters:
      `value` - value to convert
    Returns:
      the converted value

  - ### writeSwappedDouble

    public static void writeSwappedDouble(byte[] data, int offset, double value)
    Writes a "double" value to a byte array at a given offset. The value is converted to the opposed endian system while writing.
    Parameters:
      `data` - target byte array
      `offset` - starting offset in the byte array
      `value` - value to write

  - ### writeSwappedDouble

    public static void writeSwappedDouble(OutputStream output, double value) throws IOException
    Writes a "double" value to an OutputStream. The value is converted to the opposed endian system while writing.
    Parameters:
      `output` - target OutputStream
      `value` - value to write
    Throws:
      `IOException` - in case of an I/O problem

  - ### writeSwappedFloat

    public static void writeSwappedFloat(byte[] data, int offset, float value)
    Writes a "float" value to a byte array at a given offset. The value is converted to the opposed endian system while writing.
    Parameters:
      `data` - target byte array
      `offset` - starting offset in the byte array
      `value` - value to write

  - ### writeSwappedFloat

    public static void writeSwappedFloat(OutputStream output, float value) throws IOException
    Writes a "float" value to an OutputStream. The value is converted to the opposed endian system while writing.
    Parameters:
      `output` - target OutputStream
      `value` - value to write
    Throws:
      `IOException` - in case of an I/O problem

  - ### writeSwappedInteger

    public static void writeSwappedInteger(byte[] data, int offset, int value)
    Writes an "int" value to a byte array at a given offset. The value is converted to the opposed endian system while writing.
    Parameters:
      `data` - target byte array
      `offset` - starting offset in the byte array
      `value` - value to write

  - ### writeSwappedInteger

    public static void writeSwappedInteger(OutputStream output, int value) throws IOException
    Writes an "int" value to an OutputStream. The value is converted to the opposed endian system while writing.
    Parameters:
      `output` - target OutputStream
      `value` - value to write
    Throws:
      `IOException` - in case of an I/O problem

  - ### writeSwappedLong

    public static void writeSwappedLong(byte[] data, int offset, long value)
    Writes a "long" value to a byte array at a given offset. The value is converted to the opposed endian system while writing.
    Parameters:
      `data` - target byte array
      `offset` - starting offset in the byte array
      `value` - value to write

  - ### writeSwappedLong

    public static void writeSwappedLong(OutputStream output, long value) throws IOException
    Writes a "long" value to an OutputStream. The value is converted to the opposed endian system while writing.
    Parameters:
      `output` - target OutputStream
      `value` - value to write
    Throws:
      `IOException` - in case of an I/O problem

  - ### writeSwappedShort

    public static void writeSwappedShort(byte[] data, int offset, short value)
    Writes a "short" value to a byte array at a given offset. The value is converted to the opposed endian system while writing.
    Parameters:
      `data` - target byte array
      `offset` - starting offset in the byte array
      `value` - value to write

  - ### writeSwappedShort

    public static void writeSwappedShort(OutputStream output, short value) throws IOException
    Writes a "short" value to an OutputStream. The value is converted to the opposed endian system while writing.
    Parameters:
      `output` - target OutputStream
      `value` - value to write
    Throws:
      `IOException` - in case of an I/O problem