public class Inflater extends Object
The following code fragment demonstrates a trivial compression and decompression of a string using Deflater and Inflater.
try {
// Encode a String into bytes
String inputString = "blahblahblah€€";
byte[] input = inputString.getBytes("UTF-8");
// Compress the bytes
byte[] output = new byte[100];
Deflater compresser = new Deflater();
compresser.setInput(input);
compresser.finish();
int compressedDataLength = compresser.deflate(output);
// Decompress the bytes
Inflater decompresser = new Inflater();
decompresser.setInput(output, 0, compressedDataLength);
byte[] result = new byte[100];
int resultLength = decompresser.inflate(result);
decompresser.end();
// Decode the bytes into a String
String outputString = new String(result, 0, resultLength, "UTF-8");
} catch(java.io.UnsupportedEncodingException ex) {
// handle
} catch (java.util.zip.DataFormatException ex) {
// handle
}
Deflater
| Constructor and Description |
|---|
Inflater()
Creates a new decompressor.
|
Inflater(boolean nowrap)
Creates a new decompressor.
|
| Modifier and Type | Method and Description |
|---|---|
void |
end()
Closes the decompressor and discards any unprocessed input.
|
protected void |
finalize()
Closes the decompressor when garbage is collected.
|
boolean |
finished()
Returns true if the end of the compressed data stream has been reached.
|
int |
getAdler()
Returns the ADLER-32 value of the uncompressed data.
|
long |
getBytesRead()
Returns the total number of compressed bytes input so far.
|
long |
getBytesWritten()
Returns the total number of uncompressed bytes output so far.
|
int |
getRemaining()
Returns the total number of bytes remaining in the input buffer.
|
int |
getTotalIn()
Returns the total number of compressed bytes input so far.
|
int |
getTotalOut()
Returns the total number of uncompressed bytes output so far.
|
int |
inflate(byte[] b)
Uncompresses bytes into specified buffer.
|
int |
inflate(byte[] b, int off, int len)
Uncompresses bytes into specified buffer.
|
boolean |
needsDictionary()
Returns true if a preset dictionary is needed for decompression.
|
boolean |
needsInput()
Returns true if no data remains in the input buffer.
|
void |
reset()
Resets inflater so that a new set of input data can be processed.
|
void |
setDictionary(byte[] b)
Sets the preset dictionary to the given array of bytes.
|
void |
setDictionary(byte[] b, int off, int len)
Sets the preset dictionary to the given array of bytes.
|
void |
setInput(byte[] b)
Sets input data for decompression.
|
void |
setInput(byte[] b, int off, int len)
Sets input data for decompression.
|
public Inflater(boolean nowrap)
Note: When using the 'nowrap' option it is also necessary to provide an extra "dummy" byte as input. This is required by the ZLIB native library in order to support certain optimizations.
nowrap - if true then support GZIP compatible compression
public Inflater()
public void setInput(byte[] b,
int off,
int len)
b - the input data bytes
off - the start offset of the input data
len - the length of the input data
needsInput()
public void setInput(byte[] b)
b - the input data bytes
needsInput()
public void setDictionary(byte[] b,
int off,
int len)
b - the dictionary data bytes
off - the start offset of the data
len - the length of the data
needsDictionary(),
getAdler()
public void setDictionary(byte[] b)
b - the dictionary data bytes
needsDictionary(),
getAdler()
public int getRemaining()
public boolean needsInput()
public boolean needsDictionary()
setDictionary(byte[], int, int)
public boolean finished()
public int inflate(byte[] b,
int off,
int len)
throws DataFormatException
b - the buffer for the uncompressed data
off - the start offset of the data
len - the maximum number of uncompressed bytes
DataFormatException - if the compressed data format is invalid
needsInput(),
needsDictionary()
public int inflate(byte[] b)
throws DataFormatException
b - the buffer for the uncompressed data
DataFormatException - if the compressed data format is invalid
needsInput(),
needsDictionary()
public int getAdler()
public int getTotalIn()
Since the number of bytes may be greater than Integer.MAX_VALUE, the getBytesRead() method is now the preferred means of obtaining this information.
public long getBytesRead()
public int getTotalOut()
Since the number of bytes may be greater than Integer.MAX_VALUE, the getBytesWritten() method is now the preferred means of obtaining this information.
public long getBytesWritten()
public void reset()
public void end()
protected void finalize()
finalize in class
Object
WeakReference,
PhantomReference