Class EndianUtils

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

public class EndianUtils extends Object
General Endian Related Utilties.

This class provides static utility methods for input/output operations on numbers in Big and Little Endian formats.

Origin of code: Based on the version in POI

  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static int
    getIntBE(byte[] data)
    Get a BE int value from the beginning of a byte array
    static int
    getIntBE(byte[] data, int offset)
    Get a BE int value from a byte array
    static int
    getIntLE(byte[] data)
    Get a LE int value from the beginning of a byte array
    static int
    getIntLE(byte[] data, int offset)
    Get a LE int value from a byte array
    static long
    getLongLE(byte[] data, int offset)
    Get a LE long value from a byte array
    static short
    getShortBE(byte[] data)
    Get a BE short value from the beginning of a byte array
    static short
    getShortBE(byte[] data, int offset)
    Get a BE short value from a byte array
    static short
    getShortLE(byte[] data)
    Get a LE short value from the beginning of a byte array
    static short
    getShortLE(byte[] data, int offset)
    Get a LE short value from a byte array
    static short
    getUByte(byte[] data, int offset)
    get the unsigned value of a byte.
    static long
    getUIntBE(byte[] data)
    Get a BE unsigned int value from a byte array
    static long
    getUIntBE(byte[] data, int offset)
    Get a BE unsigned int value from a byte array
    static long
    getUIntLE(byte[] data)
    Get a LE unsigned int value from a byte array
    static long
    getUIntLE(byte[] data, int offset)
    Get a LE unsigned int value from a byte array
    static int
    getUShortBE(byte[] data)
    Get a BE unsigned short value from the beginning of a byte array
    static int
    getUShortBE(byte[] data, int offset)
    Get a BE unsigned short value from a byte array
    static int
    getUShortLE(byte[] data)
    Get a LE unsigned short value from the beginning of a byte array
    static int
    getUShortLE(byte[] data, int offset)
    Get a LE unsigned short value from a byte array
    static int
    Get a BE int value from an InputStream
    static int
    Get a LE int value from an InputStream
    static int
    Get a PDP-11 style Middle Endian int value from an InputStream
    static long
    Get a NE long value from an InputStream
    static long
    Get a LE long value from an InputStream
    static short
    Get a BE short value from an InputStream
    static short
    Get a LE short value from an InputStream
    static long
    Gets the integer value that is stored in UTF-8 like fashion, in Big Endian but with the high bit on each number indicating if it continues or not
    static long
    Get a BE unsigned int value from an InputStream
    static long
    Get a LE unsigned int value from an InputStream
    static int
     
    static int
     
    static int
    ubyteToInt(byte b)
    Convert an 'unsigned' byte to an integer.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • EndianUtils

      public EndianUtils()
  • Method Details

    • readShortLE

      public static short readShortLE(InputStream stream) throws IOException, EndianUtils.BufferUnderrunException
      Get a LE short value from an InputStream
      Parameters:
      stream - the InputStream from which the short is to be read
      Returns:
      the short (16-bit) value
      Throws:
      IOException - will be propagated back to the caller
      EndianUtils.BufferUnderrunException - if the stream cannot provide enough bytes
    • readShortBE

      public static short readShortBE(InputStream stream) throws IOException, EndianUtils.BufferUnderrunException
      Get a BE short value from an InputStream
      Parameters:
      stream - the InputStream from which the short is to be read
      Returns:
      the short (16-bit) value
      Throws:
      IOException - will be propagated back to the caller
      EndianUtils.BufferUnderrunException - if the stream cannot provide enough bytes
    • readUShortLE

      public static int readUShortLE(InputStream stream) throws IOException, EndianUtils.BufferUnderrunException
      Throws:
      IOException
      EndianUtils.BufferUnderrunException
    • readUShortBE

      public static int readUShortBE(InputStream stream) throws IOException, EndianUtils.BufferUnderrunException
      Throws:
      IOException
      EndianUtils.BufferUnderrunException
    • readUIntLE

      public static long readUIntLE(InputStream stream) throws IOException, EndianUtils.BufferUnderrunException
      Get a LE unsigned int value from an InputStream
      Parameters:
      stream - the InputStream from which the int is to be read
      Returns:
      the int (32-bit) value
      Throws:
      IOException - will be propagated back to the caller
      EndianUtils.BufferUnderrunException - if the stream cannot provide enough bytes
    • readUIntBE

      public static long readUIntBE(InputStream stream) throws IOException, EndianUtils.BufferUnderrunException
      Get a BE unsigned int value from an InputStream
      Parameters:
      stream - the InputStream from which the int is to be read
      Returns:
      the int (32-bit) value
      Throws:
      IOException - will be propagated back to the caller
      EndianUtils.BufferUnderrunException - if the stream cannot provide enough bytes
    • readIntLE

      public static int readIntLE(InputStream stream) throws IOException, EndianUtils.BufferUnderrunException
      Get a LE int value from an InputStream
      Parameters:
      stream - the InputStream from which the int is to be read
      Returns:
      the int (32-bit) value
      Throws:
      IOException - will be propagated back to the caller
      EndianUtils.BufferUnderrunException - if the stream cannot provide enough bytes
    • readIntBE

      public static int readIntBE(InputStream stream) throws IOException, EndianUtils.BufferUnderrunException
      Get a BE int value from an InputStream
      Parameters:
      stream - the InputStream from which the int is to be read
      Returns:
      the int (32-bit) value
      Throws:
      IOException - will be propagated back to the caller
      EndianUtils.BufferUnderrunException - if the stream cannot provide enough bytes
    • readIntME

      public static int readIntME(InputStream stream) throws IOException, EndianUtils.BufferUnderrunException
      Get a PDP-11 style Middle Endian int value from an InputStream
      Parameters:
      stream - the InputStream from which the int is to be read
      Returns:
      the int (32-bit) value
      Throws:
      IOException - will be propagated back to the caller
      EndianUtils.BufferUnderrunException - if the stream cannot provide enough bytes
    • readLongLE

      public static long readLongLE(InputStream stream) throws IOException, EndianUtils.BufferUnderrunException
      Get a LE long value from an InputStream
      Parameters:
      stream - the InputStream from which the long is to be read
      Returns:
      the long (64-bit) value
      Throws:
      IOException - will be propagated back to the caller
      EndianUtils.BufferUnderrunException - if the stream cannot provide enough bytes
    • readLongBE

      public static long readLongBE(InputStream stream) throws IOException, EndianUtils.BufferUnderrunException
      Get a NE long value from an InputStream
      Parameters:
      stream - the InputStream from which the long is to be read
      Returns:
      the long (64-bit) value
      Throws:
      IOException - will be propagated back to the caller
      EndianUtils.BufferUnderrunException - if the stream cannot provide enough bytes
    • readUE7

      public static long readUE7(InputStream stream) throws IOException
      Gets the integer value that is stored in UTF-8 like fashion, in Big Endian but with the high bit on each number indicating if it continues or not
      Throws:
      IOException
    • getShortLE

      public static short getShortLE(byte[] data)
      Get a LE short value from the beginning of a byte array
      Parameters:
      data - the byte array
      Returns:
      the short (16-bit) value
    • getShortLE

      public static short getShortLE(byte[] data, int offset)
      Get a LE short value from a byte array
      Parameters:
      data - the byte array
      offset - a starting offset into the byte array
      Returns:
      the short (16-bit) value
    • getUShortLE

      public static int getUShortLE(byte[] data)
      Get a LE unsigned short value from the beginning of a byte array
      Parameters:
      data - the byte array
      Returns:
      the unsigned short (16-bit) value in an int
    • getUShortLE

      public static int getUShortLE(byte[] data, int offset)
      Get a LE unsigned short value from a byte array
      Parameters:
      data - the byte array
      offset - a starting offset into the byte array
      Returns:
      the unsigned short (16-bit) value in an integer
    • getShortBE

      public static short getShortBE(byte[] data)
      Get a BE short value from the beginning of a byte array
      Parameters:
      data - the byte array
      Returns:
      the short (16-bit) value
    • getShortBE

      public static short getShortBE(byte[] data, int offset)
      Get a BE short value from a byte array
      Parameters:
      data - the byte array
      offset - a starting offset into the byte array
      Returns:
      the short (16-bit) value
    • getUShortBE

      public static int getUShortBE(byte[] data)
      Get a BE unsigned short value from the beginning of a byte array
      Parameters:
      data - the byte array
      Returns:
      the unsigned short (16-bit) value in an int
    • getUShortBE

      public static int getUShortBE(byte[] data, int offset)
      Get a BE unsigned short value from a byte array
      Parameters:
      data - the byte array
      offset - a starting offset into the byte array
      Returns:
      the unsigned short (16-bit) value in an integer
    • getIntLE

      public static int getIntLE(byte[] data)
      Get a LE int value from the beginning of a byte array
      Parameters:
      data - the byte array
      Returns:
      the int (32-bit) value
    • getIntLE

      public static int getIntLE(byte[] data, int offset)
      Get a LE int value from a byte array
      Parameters:
      data - the byte array
      offset - a starting offset into the byte array
      Returns:
      the int (32-bit) value
    • getIntBE

      public static int getIntBE(byte[] data)
      Get a BE int value from the beginning of a byte array
      Parameters:
      data - the byte array
      Returns:
      the int (32-bit) value
    • getIntBE

      public static int getIntBE(byte[] data, int offset)
      Get a BE int value from a byte array
      Parameters:
      data - the byte array
      offset - a starting offset into the byte array
      Returns:
      the int (32-bit) value
    • getUIntLE

      public static long getUIntLE(byte[] data)
      Get a LE unsigned int value from a byte array
      Parameters:
      data - the byte array
      Returns:
      the unsigned int (32-bit) value in a long
    • getUIntLE

      public static long getUIntLE(byte[] data, int offset)
      Get a LE unsigned int value from a byte array
      Parameters:
      data - the byte array
      offset - a starting offset into the byte array
      Returns:
      the unsigned int (32-bit) value in a long
    • getUIntBE

      public static long getUIntBE(byte[] data)
      Get a BE unsigned int value from a byte array
      Parameters:
      data - the byte array
      Returns:
      the unsigned int (32-bit) value in a long
    • getUIntBE

      public static long getUIntBE(byte[] data, int offset)
      Get a BE unsigned int value from a byte array
      Parameters:
      data - the byte array
      offset - a starting offset into the byte array
      Returns:
      the unsigned int (32-bit) value in a long
    • getLongLE

      public static long getLongLE(byte[] data, int offset)
      Get a LE long value from a byte array
      Parameters:
      data - the byte array
      offset - a starting offset into the byte array
      Returns:
      the long (64-bit) value
    • ubyteToInt

      public static int ubyteToInt(byte b)
      Convert an 'unsigned' byte to an integer. ie, don't carry across the sign.
      Parameters:
      b - Description of the Parameter
      Returns:
      Description of the Return Value
    • getUByte

      public static short getUByte(byte[] data, int offset)
      get the unsigned value of a byte.
      Parameters:
      data - the byte array.
      offset - a starting offset into the byte array.
      Returns:
      the unsigned value of the byte as a 16 bit short