| |||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public class Inflater extends Object
This class provides support for general purpose decompression using the popular ZLIB compression library. The ZLIB compression library was initially developed as part of the PNG graphics standard and is not protected by patents. It is fully described in the specifications at the java.util.zip package description.
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 }
Constructor Summary | |
---|---|
Inflater() Creates a new decompressor. |
|
Inflater(boolean nowrap) Creates a new decompressor. |
Method Summary | |
---|---|
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 |
Returns the total number of compressed bytes input so far. |
long |
Returns the total number of uncompressed bytes output so far. |
int |
Returns the total number of bytes remaining in the input buffer. |
int |
Returns the total number of compressed bytes input so far. |
int |
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 |
Returns true if a preset dictionary is needed for decompression. |
boolean |
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. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public Inflater()
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 compressionMethod Detail |
---|
public synchronized void end()
protected void finalize()
finalize
in class Object
public synchronized boolean finished()
public synchronized int getAdler()
public synchronized long getBytesRead()
public synchronized long getBytesWritten()
public synchronized int getRemaining()
public int getTotalIn()
Since the number of bytes may be greater than Integer.MAX_VALUE, the {@link #getBytesRead()} method is now the preferred means of obtaining this information.
public int getTotalOut()
Since the number of bytes may be greater than Integer.MAX_VALUE, the {@link #getBytesWritten()} method is now the preferred means of obtaining this information.
public int inflate(byte[] b) throws DataFormatException
b
- the buffer for the uncompressed dataDataFormatException
- if the compressed data format is invalidpublic synchronized int inflate(byte[] b, int off, int len) throws DataFormatException
b
- the buffer for the uncompressed dataoff
- the start offset of the datalen
- the maximum number of uncompressed bytesDataFormatException
- if the compressed data format is invalidpublic synchronized boolean needsDictionary()
public synchronized boolean needsInput()
public synchronized void reset()
public void setDictionary(byte[] b)
b
- the dictionary data bytespublic synchronized void setDictionary(byte[] b, int off, int len)
b
- the dictionary data bytesoff
- the start offset of the datalen
- the length of the datapublic void setInput(byte[] b)
b
- the input data bytespublic synchronized void setInput(byte[] b, int off, int len)
b
- the input data bytesoff
- the start offset of the input datalen
- the length of the input data
| |||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |