Class EndianUtils


  • public class EndianUtils
    extends java.lang.Object
    Utility code for dealing 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.

    Origin of code: Excalibur

    See Also:
    SwappedDataInputStream
    • Constructor Summary

      Constructors 
      Constructor Description
      EndianUtils()
      Instances should NOT be constructed in standard programming.
    • Method Summary

      All Methods Static Methods Concrete Methods 
      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​(java.io.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​(java.io.InputStream input)
      Reads a "float" value from an InputStream.
      static int readSwappedInteger​(byte[] data, int offset)
      Reads a "int" value from a byte array at a given offset.
      static int readSwappedInteger​(java.io.InputStream input)
      Reads a "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​(java.io.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​(java.io.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​(java.io.InputStream input)
      Reads a 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​(java.io.InputStream input)
      Reads a 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 a "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​(java.io.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​(java.io.OutputStream output, float value)
      Writes a "float" value to an OutputStream.
      static void writeSwappedInteger​(byte[] data, int offset, int value)
      Writes a "int" value to a byte array at a given offset.
      static void writeSwappedInteger​(java.io.OutputStream output, int value)
      Writes a "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​(java.io.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​(java.io.OutputStream output, short value)
      Writes a "short" value to an OutputStream.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • EndianUtils

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

      • swapShort

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

        public static int swapInteger​(int value)
        Converts a "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
      • swapFloat

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

        public static double swapDouble​(double value)
        Converts a "double" value between endian systems.
        Parameters:
        value - value to convert
        Returns:
        the converted value
      • 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
      • 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
      • 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
      • writeSwappedInteger

        public static void writeSwappedInteger​(byte[] data,
                                               int offset,
                                               int value)
        Writes a "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
      • readSwappedInteger

        public static int readSwappedInteger​(byte[] data,
                                             int offset)
        Reads a "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
      • 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
      • 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
      • 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
      • 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
      • 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
      • 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
      • 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
      • writeSwappedShort

        public static void writeSwappedShort​(java.io.OutputStream output,
                                             short value)
                                      throws java.io.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:
        java.io.IOException - in case of an I/O problem
      • readSwappedShort

        public static short readSwappedShort​(java.io.InputStream input)
                                      throws java.io.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:
        java.io.IOException - in case of an I/O problem
      • readSwappedUnsignedShort

        public static int readSwappedUnsignedShort​(java.io.InputStream input)
                                            throws java.io.IOException
        Reads a 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:
        java.io.IOException - in case of an I/O problem
      • writeSwappedInteger

        public static void writeSwappedInteger​(java.io.OutputStream output,
                                               int value)
                                        throws java.io.IOException
        Writes a "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:
        java.io.IOException - in case of an I/O problem
      • readSwappedInteger

        public static int readSwappedInteger​(java.io.InputStream input)
                                      throws java.io.IOException
        Reads a "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:
        java.io.IOException - in case of an I/O problem
      • readSwappedUnsignedInteger

        public static long readSwappedUnsignedInteger​(java.io.InputStream input)
                                               throws java.io.IOException
        Reads a 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:
        java.io.IOException - in case of an I/O problem
      • writeSwappedLong

        public static void writeSwappedLong​(java.io.OutputStream output,
                                            long value)
                                     throws java.io.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:
        java.io.IOException - in case of an I/O problem
      • readSwappedLong

        public static long readSwappedLong​(java.io.InputStream input)
                                    throws java.io.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:
        java.io.IOException - in case of an I/O problem
      • writeSwappedFloat

        public static void writeSwappedFloat​(java.io.OutputStream output,
                                             float value)
                                      throws java.io.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:
        java.io.IOException - in case of an I/O problem
      • readSwappedFloat

        public static float readSwappedFloat​(java.io.InputStream input)
                                      throws java.io.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:
        java.io.IOException - in case of an I/O problem
      • writeSwappedDouble

        public static void writeSwappedDouble​(java.io.OutputStream output,
                                              double value)
                                       throws java.io.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:
        java.io.IOException - in case of an I/O problem
      • readSwappedDouble

        public static double readSwappedDouble​(java.io.InputStream input)
                                        throws java.io.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:
        java.io.IOException - in case of an I/O problem