Package org.apache.poi.util
Class LittleEndianInputStream
java.lang.Object
java.io.InputStream
java.io.FilterInputStream
org.apache.poi.util.LittleEndianInputStream
- All Implemented Interfaces:
Closeable
,AutoCloseable
,LittleEndianInput
- Direct Known Subclasses:
ChunkedCipherInputStream
Wraps an
InputStream
providing LittleEndianInput
This class does not buffer any input, so the stream read position maintained by this class is consistent with that of the inner stream.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionint
int
void
mark
(int readlimit) int
read
(byte[] b, int off, int len) byte
readByte()
double
float
get a float value, reads it in little endian format then converts the resulting revolting IEEE 754 (curse them) floating point number to a happy java floatvoid
readFully
(byte[] buf) void
readFully
(byte[] buf, int off, int len) int
readInt()
long
readLong()
void
readPlain
(byte[] buf, int off, int len) Usually acts the same asLittleEndianInput.readFully(byte[], int, int)
, but for an encrypted stream the raw (unencrypted) data is filledshort
int
long
readUInt()
get an unsigned int value from an InputStreamint
void
reset()
void
skipFully
(int len) Methods inherited from class java.io.FilterInputStream
close, markSupported, read, read, skip
Methods inherited from class java.io.InputStream
nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo
-
Constructor Details
-
LittleEndianInputStream
-
-
Method Details
-
available
public int available()- Specified by:
available
in interfaceLittleEndianInput
- Overrides:
available
in classFilterInputStream
-
readByte
public byte readByte()- Specified by:
readByte
in interfaceLittleEndianInput
-
readUByte
public int readUByte()- Specified by:
readUByte
in interfaceLittleEndianInput
-
readFloat
public float readFloat()get a float value, reads it in little endian format then converts the resulting revolting IEEE 754 (curse them) floating point number to a happy java float- Returns:
- the float (32-bit) value
-
readDouble
public double readDouble()- Specified by:
readDouble
in interfaceLittleEndianInput
-
readInt
public int readInt()- Specified by:
readInt
in interfaceLittleEndianInput
-
readUInt
public long readUInt()get an unsigned int value from an InputStream- Returns:
- the unsigned int (32-bit) value
- Throws:
RuntimeException
- wraps any IOException thrown from reading the stream.
-
readLong
public long readLong()- Specified by:
readLong
in interfaceLittleEndianInput
-
readShort
public short readShort()- Specified by:
readShort
in interfaceLittleEndianInput
-
readUShort
public int readUShort()- Specified by:
readUShort
in interfaceLittleEndianInput
-
readFully
public void readFully(byte[] buf) - Specified by:
readFully
in interfaceLittleEndianInput
-
readFully
public void readFully(byte[] buf, int off, int len) - Specified by:
readFully
in interfaceLittleEndianInput
-
read
- Overrides:
read
in classFilterInputStream
- Throws:
IOException
-
mark
public void mark(int readlimit) - Overrides:
mark
in classFilterInputStream
-
reset
- Overrides:
reset
in classFilterInputStream
- Throws:
IOException
-
getReadIndex
public int getReadIndex() -
readPlain
public void readPlain(byte[] buf, int off, int len) Description copied from interface:LittleEndianInput
Usually acts the same asLittleEndianInput.readFully(byte[], int, int)
, but for an encrypted stream the raw (unencrypted) data is filled- Specified by:
readPlain
in interfaceLittleEndianInput
- Parameters:
buf
- the byte array to receive the bytesoff
- the start offset into the byte arraylen
- the amount of bytes to fill
-
skipFully
- Throws:
IOException
-