Package org.apache.poi.util
Class RLEDecompressingInputStream
- java.lang.Object
-
- java.io.InputStream
-
- org.apache.poi.util.RLEDecompressingInputStream
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
public class RLEDecompressingInputStream extends java.io.InputStream
Wrapper of InputStream which provides Run Length Encoding (RLE) decompression on the fly. Uses MS-OVBA decompression algorithm. See http://download.microsoft.com/download/2/4/8/24862317-78F0-4C4B-B355-C7B2C1D997DB/[MS-OVBA].pdf
-
-
Constructor Summary
Constructors Constructor Description RLEDecompressingInputStream(java.io.InputStream in)
Creates a new wrapper RLE Decompression InputStream.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description int
available()
void
close()
static byte[]
decompress(byte[] compressed)
static byte[]
decompress(byte[] compressed, int offset, int length)
int
read()
int
read(byte[] b)
int
read(byte[] b, int off, int l)
int
readInt()
Convenience method for read a 4-bytes int in little endian encoding.int
readShort()
Convenience method for read a 2-bytes short in little endian encoding.long
skip(long n)
-
-
-
Method Detail
-
read
public int read() throws java.io.IOException
- Specified by:
read
in classjava.io.InputStream
- Throws:
java.io.IOException
-
read
public int read(byte[] b) throws java.io.IOException
- Overrides:
read
in classjava.io.InputStream
- Throws:
java.io.IOException
-
read
public int read(byte[] b, int off, int l) throws java.io.IOException
- Overrides:
read
in classjava.io.InputStream
- Throws:
java.io.IOException
-
skip
public long skip(long n) throws java.io.IOException
- Overrides:
skip
in classjava.io.InputStream
- Throws:
java.io.IOException
-
available
public int available()
- Overrides:
available
in classjava.io.InputStream
-
close
public void close() throws java.io.IOException
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Overrides:
close
in classjava.io.InputStream
- Throws:
java.io.IOException
-
readShort
public int readShort() throws java.io.IOException
Convenience method for read a 2-bytes short in little endian encoding.- Returns:
- short value from the stream, -1 if end of stream is reached
- Throws:
java.io.IOException
-
readInt
public int readInt() throws java.io.IOException
Convenience method for read a 4-bytes int in little endian encoding.- Returns:
- integer value from the stream, -1 if end of stream is reached
- Throws:
java.io.IOException
-
decompress
public static byte[] decompress(byte[] compressed) throws java.io.IOException
- Throws:
java.io.IOException
-
decompress
public static byte[] decompress(byte[] compressed, int offset, int length) throws java.io.IOException
- Throws:
java.io.IOException
-
-