Package org.h2.tools
Class CompressTool
- java.lang.Object
-
- org.h2.tools.CompressTool
-
public class CompressTool extends java.lang.ObjectA tool to losslessly compress data, and expand the compressed data again.
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description byte[]compress(byte[] in, java.lang.String algorithm)Compressed the data using the specified algorithm.byte[]expand(byte[] in)Expands the compressed data.static voidexpand(byte[] in, byte[] out, int outPos)INTERNALstatic CompressToolgetInstance()Get a new instance.static intgetVariableIntLength(int x)Get a variable size integer length using Rice coding.static intreadVariableInt(byte[] buff, int pos)Read a variable size integer using Rice coding.static java.io.InputStreamwrapInputStream(java.io.InputStream in, java.lang.String compressionAlgorithm, java.lang.String entryName)INTERNALstatic java.io.OutputStreamwrapOutputStream(java.io.OutputStream out, java.lang.String compressionAlgorithm, java.lang.String entryName)INTERNALstatic intwriteVariableInt(byte[] buff, int pos, int x)Write a variable size integer using Rice coding.
-
-
-
Method Detail
-
getInstance
public static CompressTool getInstance()
Get a new instance. Each instance uses a separate buffer, so multiple instances can be used concurrently. However each instance alone is not multithreading safe.- Returns:
- a new instance
-
compress
public byte[] compress(byte[] in, java.lang.String algorithm)Compressed the data using the specified algorithm. If no algorithm is supplied, LZF is used- Parameters:
in- the byte array with the original dataalgorithm- the algorithm (LZF, DEFLATE)- Returns:
- the compressed data
-
expand
public byte[] expand(byte[] in)
Expands the compressed data.- Parameters:
in- the byte array with the compressed data- Returns:
- the uncompressed data
-
expand
public static void expand(byte[] in, byte[] out, int outPos)INTERNAL- Parameters:
in- compressed dataout- uncompressed resultoutPos- the offset at the output array
-
readVariableInt
public static int readVariableInt(byte[] buff, int pos)Read a variable size integer using Rice coding.- Parameters:
buff- the bufferpos- the position- Returns:
- the integer
-
writeVariableInt
public static int writeVariableInt(byte[] buff, int pos, int x)Write a variable size integer using Rice coding. Negative values need 5 bytes.- Parameters:
buff- the bufferpos- the positionx- the value- Returns:
- the number of bytes written (0-5)
-
getVariableIntLength
public static int getVariableIntLength(int x)
Get a variable size integer length using Rice coding. Negative values need 5 bytes.- Parameters:
x- the value- Returns:
- the number of bytes needed (0-5)
-
wrapOutputStream
public static java.io.OutputStream wrapOutputStream(java.io.OutputStream out, java.lang.String compressionAlgorithm, java.lang.String entryName)INTERNAL- Parameters:
out- streamcompressionAlgorithm- to be usedentryName- in a zip file- Returns:
- compressed stream
-
wrapInputStream
public static java.io.InputStream wrapInputStream(java.io.InputStream in, java.lang.String compressionAlgorithm, java.lang.String entryName)INTERNAL- Parameters:
in- streamcompressionAlgorithm- to be usedentryName- in a zip file- Returns:
- in stream or null if there is no such entry
-
-