Package org.apache.poi.util
Class LittleEndianInputStream
- java.lang.Object
-
- java.io.InputStream
-
- java.io.FilterInputStream
-
- org.apache.poi.util.LittleEndianInputStream
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,LittleEndianInput
- Direct Known Subclasses:
ChunkedCipherInputStream
public class LittleEndianInputStream extends java.io.FilterInputStream implements LittleEndianInput
Wraps anInputStream
providingLittleEndianInput
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 Constructor Description LittleEndianInputStream(java.io.InputStream is)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
available()
int
getReadIndex()
void
mark(int readlimit)
int
read(byte[] b, int off, int len)
byte
readByte()
double
readDouble()
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 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
readShort()
int
readUByte()
long
readUInt()
get an unsigned int value from an InputStreamint
readUShort()
void
reset()
void
skipFully(int len)
-
-
-
Method Detail
-
available
public int available()
- Specified by:
available
in interfaceLittleEndianInput
- Overrides:
available
in classjava.io.FilterInputStream
-
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:
java.lang.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
public int read(byte[] b, int off, int len) throws java.io.IOException
- Overrides:
read
in classjava.io.FilterInputStream
- Throws:
java.io.IOException
-
mark
public void mark(int readlimit)
- Overrides:
mark
in classjava.io.FilterInputStream
-
reset
public void reset() throws java.io.IOException
- Overrides:
reset
in classjava.io.FilterInputStream
- Throws:
java.io.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
public void skipFully(int len) throws java.io.IOException
- Throws:
java.io.IOException
-
-