Package org.apache.poi.util
Class LittleEndian
- java.lang.Object
-
- org.apache.poi.util.LittleEndian
-
- All Implemented Interfaces:
LittleEndianConsts
@Internal public final class LittleEndian extends Object implements LittleEndianConsts
a utility class for handling little-endian numbers, which the 80x86 world is replete with. The methods are all static, and input/output is from/to byte arrays, or from InputStreams.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classLittleEndian.BufferUnderrunExceptionException to handle buffer underruns
-
Field Summary
-
Fields inherited from interface org.apache.poi.util.LittleEndianConsts
BYTE_SIZE, DOUBLE_SIZE, INT_SIZE, LONG_SIZE, SHORT_SIZE
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static doublegetDouble(byte[] data)get a double value from a byte array, reads it in little endian format then converts the resulting revolting IEEE 754 (curse them) floating point number to a happy java doublestatic doublegetDouble(byte[] data, int offset)get a double value from a byte array, reads it in little endian format then converts the resulting revolting IEEE 754 (curse them) floating point number to a happy java doublestatic floatgetFloat(byte[] data)get a float value from a byte array, reads it in little endian format then converts the resulting revolting IEEE 754 (curse them) floating point number to a happy java floatstatic floatgetFloat(byte[] data, int offset)get a float value from a byte array, reads it in little endian format then converts the resulting revolting IEEE 754 (curse them) floating point number to a happy java floatstatic intgetInt(byte[] data)get an int value from the beginning of a byte arraystatic intgetInt(byte[] data, int offset)get an int value from a byte arraystatic longgetLong(byte[] data)get a long value from a byte arraystatic longgetLong(byte[] data, int offset)get a long value from a byte arraystatic shortgetShort(byte[] data)get a short value from the beginning of a byte arraystatic shortgetShort(byte[] data, int offset)get a short value from a byte arraystatic short[]getShortArray(byte[] data, int offset, int size)Read short arraystatic shortgetUByte(byte[] data)get the unsigned value of a byte.static shortgetUByte(byte[] data, int offset)get the unsigned value of a byte.static longgetUInt(byte[] data)get an unsigned int value from a byte arraystatic longgetUInt(byte[] data, int offset)get an unsigned int value from a byte arraystatic intgetUShort(byte[] data)get an unsigned short value from the beginning of a byte arraystatic intgetUShort(byte[] data, int offset)get an unsigned short value from a byte arraystatic voidputByte(byte[] data, int offset, int value)executes:static voidputDouble(byte[] data, int offset, double value)put a double value into a byte arraystatic voidputDouble(double value, OutputStream outputStream)put a double value into a byte arraystatic voidputFloat(byte[] data, int offset, float value)put a float value into a byte arraystatic voidputFloat(float value, OutputStream outputStream)put a float value into a byte arraystatic voidputInt(byte[] data, int offset, int value)put an int value into a byte arraystatic voidputInt(int value, OutputStream outputStream)Put int into output streamstatic voidputLong(byte[] data, int offset, long value)put a long value into a byte arraystatic voidputLong(long value, OutputStream outputStream)Put long into output streamstatic voidputShort(byte[] data, int offset, short value)put a short value into a byte arraystatic voidputShort(OutputStream outputStream, short value)Put signed short into output streamstatic voidputShortArray(byte[] data, int startOffset, short[] value)Stores short array in bufferstatic voidputUByte(byte[] data, int offset, short value)put an unsigned byte value into a byte arraystatic voidputUInt(byte[] data, int offset, long value)put an unsigned int value into a byte arraystatic voidputUInt(long value, OutputStream outputStream)Put unsigned int into output streamstatic voidputUShort(byte[] data, int offset, int value)put an unsigned short value into a byte arraystatic voidputUShort(int value, OutputStream outputStream)Put unsigned short into output streamstatic intreadInt(InputStream stream)get an int value from an InputStreamstatic longreadLong(InputStream stream)get a long value from an InputStreamstatic shortreadShort(InputStream stream)get a short value from an InputStreamstatic longreadUInt(InputStream stream)get an unsigned int value from an InputStreamstatic intreadUShort(InputStream stream)static intubyteToInt(byte b)Convert an 'unsigned' byte to an integer.
-
-
-
Method Detail
-
getDouble
public static double getDouble(byte[] data)
get a double value from a byte array, reads it in little endian format then converts the resulting revolting IEEE 754 (curse them) floating point number to a happy java double- Parameters:
data- the byte array- Returns:
- the double (64-bit) value
-
getDouble
public static double getDouble(byte[] data, int offset)get a double value from a byte array, reads it in little endian format then converts the resulting revolting IEEE 754 (curse them) floating point number to a happy java double- Parameters:
data- the byte arrayoffset- a starting offset into the byte array- Returns:
- the double (64-bit) value
-
getFloat
public static float getFloat(byte[] data)
get a float value from a byte array, reads it in little endian format then converts the resulting revolting IEEE 754 (curse them) floating point number to a happy java float- Parameters:
data- the byte array- Returns:
- the double (64-bit) value
-
getFloat
public static float getFloat(byte[] data, int offset)get a float value from a byte array, reads it in little endian format then converts the resulting revolting IEEE 754 (curse them) floating point number to a happy java float- Parameters:
data- the byte arrayoffset- a starting offset into the byte array- Returns:
- the double (64-bit) value
-
getInt
public static int getInt(byte[] data)
get an int value from the beginning of a byte array- Parameters:
data- the byte array- Returns:
- the int (32-bit) value
-
getInt
public static int getInt(byte[] data, int offset)get an int value from a byte array- Parameters:
data- the byte arrayoffset- a starting offset into the byte array- Returns:
- the int (32-bit) value
-
getLong
public static long getLong(byte[] data)
get a long value from a byte array- Parameters:
data- the byte array- Returns:
- the long (64-bit) value
-
getLong
public static long getLong(byte[] data, int offset)get a long value from a byte array- Parameters:
data- the byte arrayoffset- a starting offset into the byte array- Returns:
- the long (64-bit) value
-
getShort
public static short getShort(byte[] data)
get a short value from the beginning of a byte array- Parameters:
data- the byte array- Returns:
- the short (16-bit) value
-
getShort
public static short getShort(byte[] data, int offset)get a short value from a byte array- Parameters:
data- the byte arrayoffset- a starting offset into the byte array- Returns:
- the short (16-bit) value
-
getShortArray
public static short[] getShortArray(byte[] data, int offset, int size)Read short array- Parameters:
data- the original byte arrayoffset- Where to start copying from.size- Number of bytes to copy.- Throws:
IndexOutOfBoundsException- - if read would cause access of data outside array bounds.
-
getUByte
public static short getUByte(byte[] data)
get the unsigned value of a byte.- Parameters:
data- the byte array.- Returns:
- the unsigned value of the byte as a 16 bit short
-
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
-
getUInt
public static long getUInt(byte[] data)
get an unsigned int value from a byte array- Parameters:
data- the byte array- Returns:
- the unsigned int (32-bit) value in a long
-
getUInt
public static long getUInt(byte[] data, int offset)get an 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
-
getUShort
public static int getUShort(byte[] data)
get an 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
-
getUShort
public static int getUShort(byte[] data, int offset)get an 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
-
putByte
public static void putByte(byte[] data, int offset, int value)executes:
Added for consistency with other put~() methodsdata[offset] = (byte)value;
-
putDouble
public static void putDouble(byte[] data, int offset, double value)put a double value into a byte array- Parameters:
data- the byte arrayoffset- a starting offset into the byte arrayvalue- the double (64-bit) value
-
putDouble
public static void putDouble(double value, OutputStream outputStream) throws IOExceptionput a double value into a byte array- Parameters:
value- the double (64-bit) valueoutputStream- output stream- Throws:
IOException- if an I/O error occurs
-
putFloat
public static void putFloat(byte[] data, int offset, float value)put a float value into a byte array- Parameters:
data- the byte arrayoffset- a starting offset into the byte arrayvalue- the float (32-bit) value
-
putFloat
public static void putFloat(float value, OutputStream outputStream) throws IOExceptionput a float value into a byte array- Parameters:
value- the float (32-bit) valueoutputStream- output stream- Throws:
IOException- if an I/O error occurs
-
putInt
public static void putInt(byte[] data, int offset, int value)put an int value into a byte array- Parameters:
data- the byte arrayoffset- a starting offset into the byte arrayvalue- the int (32-bit) value
-
putInt
public static void putInt(int value, OutputStream outputStream) throws IOExceptionPut int into output stream- Parameters:
value- the int (32-bit) valueoutputStream- output stream- Throws:
IOException- if an I/O error occurs
-
putLong
public static void putLong(byte[] data, int offset, long value)put a long value into a byte array- Parameters:
data- the byte arrayoffset- a starting offset into the byte arrayvalue- the long (64-bit) value
-
putLong
public static void putLong(long value, OutputStream outputStream) throws IOExceptionPut long into output stream- Parameters:
value- the long (64-bit) valueoutputStream- output stream- Throws:
IOException- if an I/O error occurs
-
putShort
public static void putShort(byte[] data, int offset, short value)put a short value into a byte array- Parameters:
data- the byte arrayoffset- a starting offset into the byte arrayvalue- the short (16-bit) value
-
putShort
public static void putShort(OutputStream outputStream, short value) throws IOException
Put signed short into output stream- Parameters:
value- the short (16-bit) valueoutputStream- output stream- Throws:
IOException- if an I/O error occurs
-
putShortArray
public static void putShortArray(byte[] data, int startOffset, short[] value)Stores short array in buffer- Parameters:
data- the byte arraystartOffset- a starting offset into the byte arrayvalue- the short (16-bit) values
-
putUByte
public static void putUByte(byte[] data, int offset, short value)put an unsigned byte value into a byte array- Parameters:
data- the byte arrayoffset- a starting offset into the byte arrayvalue- the short (16-bit) value- Throws:
ArrayIndexOutOfBoundsException- may be thrown
-
putUInt
public static void putUInt(byte[] data, int offset, long value)put an unsigned int value into a byte array- Parameters:
data- the byte arrayoffset- a starting offset into the byte arrayvalue- the int (32-bit) value- Throws:
ArrayIndexOutOfBoundsException- may be thrown
-
putUInt
public static void putUInt(long value, OutputStream outputStream) throws IOExceptionPut unsigned int into output stream- Parameters:
value- the int (32-bit) valueoutputStream- output stream- Throws:
IOException- if an I/O error occurs
-
putUShort
public static void putUShort(byte[] data, int offset, int value)put an unsigned short value into a byte array- Parameters:
data- the byte arrayoffset- a starting offset into the byte arrayvalue- the short (16-bit) value- Throws:
ArrayIndexOutOfBoundsException- may be thrown
-
putUShort
public static void putUShort(int value, OutputStream outputStream) throws IOExceptionPut unsigned short into output stream- Parameters:
value- the unsigned short (16-bit) valueoutputStream- output stream- Throws:
IOException- if an I/O error occurs
-
readInt
public static int readInt(InputStream stream) throws IOException
get an 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 callerLittleEndian.BufferUnderrunException- if the stream cannot provide enough bytes
-
readUInt
public static long readUInt(InputStream stream) throws IOException
get an unsigned int value from an InputStream- Parameters:
stream- the InputStream from which the int is to be read- Returns:
- the unsigned int (32-bit) value
- Throws:
IOException- will be propagated back to the callerLittleEndian.BufferUnderrunException- if the stream cannot provide enough bytes
-
readLong
public static long readLong(InputStream stream) throws IOException
get a 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 callerLittleEndian.BufferUnderrunException- if the stream cannot provide enough bytes
-
readShort
public static short readShort(InputStream stream) throws IOException
get a 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 callerLittleEndian.BufferUnderrunException- if the stream cannot provide enough bytes
-
readUShort
public static int readUShort(InputStream stream) throws IOException
- Throws:
IOException
-
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
-
-