net.jpountz.lz4
public abstract class LZ4SafeDecompressor extends Object implements LZ4UnknownSizeDecompressor
Implementations of this class are usually a little slower than those of
LZ4FastDecompressor but do not require the size of the original data to
be known.
| Constructor and Description |
|---|
LZ4SafeDecompressor() |
| Modifier and Type | Method and Description |
|---|---|
int |
decompress(byte[] src,
byte[] dest)
Convenience method, equivalent to calling
decompress(src, 0, src.length, dest, 0) |
byte[] |
decompress(byte[] src,
int maxDestLen)
Convenience method, equivalent to calling
decompress(src, 0, src.length, maxDestLen). |
int |
decompress(byte[] src,
int srcOff,
int srcLen,
byte[] dest,
int destOff)
Convenience method, equivalent to calling
decompress(src, srcOff, srcLen, dest, destOff, dest.length - destOff). |
abstract int |
decompress(byte[] src,
int srcOff,
int srcLen,
byte[] dest,
int destOff,
int maxDestLen)
Uncompress
src[srcOff:srcLen] into
dest[destOff:destOff+maxDestLen] and returns the number of
decompressed bytes written into dest. |
byte[] |
decompress(byte[] src,
int srcOff,
int srcLen,
int maxDestLen)
Convenience method which returns
src[srcOff:srcOff+srcLen]
decompressed. |
String |
toString() |
public abstract int decompress(byte[] src,
int srcOff,
int srcLen,
byte[] dest,
int destOff,
int maxDestLen)
src[srcOff:srcLen] into
dest[destOff:destOff+maxDestLen] and returns the number of
decompressed bytes written into dest.decompress in interface LZ4UnknownSizeDecompressorsrcLen - the exact size of the compressed streamLZ4Exception - if maxDestLen is too smallpublic final int decompress(byte[] src,
int srcOff,
int srcLen,
byte[] dest,
int destOff)
decompress(src, srcOff, srcLen, dest, destOff, dest.length - destOff).decompress in interface LZ4UnknownSizeDecompressorpublic final int decompress(byte[] src,
byte[] dest)
decompress(src, 0, src.length, dest, 0)public final byte[] decompress(byte[] src,
int srcOff,
int srcLen,
int maxDestLen)
src[srcOff:srcOff+srcLen]
decompressed.
Warning: this method has an important overhead due to the fact that it needs to allocate a buffer to decompress into, and then needs to resize this buffer to the actual decompressed length.
Here is how this method is implemented:
byte[] decompressed = new byte[maxDestLen];
final int decompressedLength = decompress(src, srcOff, srcLen, decompressed, 0, maxDestLen);
if (decompressedLength != decompressed.length) {
decompressed = Arrays.copyOf(decompressed, decompressedLength);
}
return decompressed;
public final byte[] decompress(byte[] src,
int maxDestLen)
decompress(src, 0, src.length, maxDestLen).