Package org.apache.tika.io
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
EndianUtils.BufferUnderrunException
-
Constructor Summary
Constructors Constructor Description EndianUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static 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.
-
-
-
Method Detail
-
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
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 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
-
-