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
 
 
 - 
 
 -