Package org.apache.tika.io
Class EndianUtils
java.lang.Object
org.apache.tika.io.EndianUtils
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
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic int
getIntBE
(byte[] data) Get a BE int value from the beginning of a byte arraystatic int
getIntBE
(byte[] data, int offset) Get a BE int value from a byte arraystatic int
getIntLE
(byte[] data) Get a LE int value from the beginning of a byte arraystatic int
getIntLE
(byte[] data, int offset) Get a LE int value from a byte arraystatic long
getLongLE
(byte[] data, int offset) Get a LE long value from a byte arraystatic short
getShortBE
(byte[] data) Get a BE short value from the beginning of a byte arraystatic short
getShortBE
(byte[] data, int offset) Get a BE short value from a byte arraystatic short
getShortLE
(byte[] data) Get a LE short value from the beginning of a byte arraystatic short
getShortLE
(byte[] data, int offset) Get a LE short value from a byte arraystatic 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 arraystatic long
getUIntBE
(byte[] data, int offset) Get a BE unsigned int value from a byte arraystatic long
getUIntLE
(byte[] data) Get a LE unsigned int value from a byte arraystatic long
getUIntLE
(byte[] data, int offset) Get a LE unsigned int value from a byte arraystatic int
getUShortBE
(byte[] data) Get a BE unsigned short value from the beginning of a byte arraystatic int
getUShortBE
(byte[] data, int offset) Get a BE unsigned short value from a byte arraystatic int
getUShortLE
(byte[] data) Get a LE unsigned short value from the beginning of a byte arraystatic int
getUShortLE
(byte[] data, int offset) Get a LE unsigned short value from a byte arraystatic int
readIntBE
(InputStream stream) Get a BE int value from an InputStreamstatic int
readIntLE
(InputStream stream) Get a LE int value from an InputStreamstatic int
readIntME
(InputStream stream) Get a PDP-11 style Middle Endian int value from an InputStreamstatic long
readLongBE
(InputStream stream) Get a NE long value from an InputStreamstatic long
readLongLE
(InputStream stream) Get a LE long value from an InputStreamstatic short
readShortBE
(InputStream stream) Get a BE short value from an InputStreamstatic short
readShortLE
(InputStream stream) Get a LE short value from an InputStreamstatic long
readUE7
(InputStream stream) 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 notstatic long
readUIntBE
(InputStream stream) Get a BE unsigned int value from an InputStreamstatic long
readUIntLE
(InputStream stream) Get a LE unsigned int value from an InputStreamstatic int
readUShortBE
(InputStream stream) static int
readUShortLE
(InputStream stream) static int
ubyteToInt
(byte b) Convert an 'unsigned' byte to an integer. ie, don't carry across the sign.
-
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 callerEndianUtils.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 callerEndianUtils.BufferUnderrunException
- if the stream cannot provide enough bytes
-
readUShortLE
public static int readUShortLE(InputStream stream) throws IOException, EndianUtils.BufferUnderrunException -
readUShortBE
public static int readUShortBE(InputStream stream) 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 callerEndianUtils.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 callerEndianUtils.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 callerEndianUtils.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 callerEndianUtils.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 callerEndianUtils.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 callerEndianUtils.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 callerEndianUtils.BufferUnderrunException
- if the stream cannot provide enough bytes
-
readUE7
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 arrayoffset
- 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 arrayoffset
- 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 arrayoffset
- 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 arrayoffset
- 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 arrayoffset
- 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 arrayoffset
- 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 arrayoffset
- 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 arrayoffset
- 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 arrayoffset
- 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
-