java.util.zip
public class Deflater 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
}
Inflater| Modifier and Type | Field and Description |
|---|---|
static int |
BEST_COMPRESSION
Compression level for best compression.
|
static int |
BEST_SPEED
Compression level for fastest compression.
|
static int |
DEFAULT_COMPRESSION
Default compression level.
|
static int |
DEFAULT_STRATEGY
Default compression strategy.
|
static int |
DEFLATED
Compression method for the deflate algorithm (the only one currently
supported).
|
static int |
FILTERED
Compression strategy best used for data consisting mostly of small
values with a somewhat random distribution.
|
static int |
HUFFMAN_ONLY
Compression strategy for Huffman coding only.
|
static int |
NO_COMPRESSION
Compression level for no compression.
|
| Constructor and Description |
|---|
Deflater()
Creates a new compressor with the default compression level.
|
Deflater(int level)
Creates a new compressor using the specified compression level.
|
Deflater(int level,
boolean nowrap)
Creates a new compressor using the specified compression level.
|
| Modifier and Type | Method and Description |
|---|---|
int |
deflate(byte[] b)
Fills specified buffer with compressed data.
|
int |
deflate(byte[] b,
int off,
int len)
Fills specified buffer with compressed data.
|
void |
end()
Closes the compressor and discards any unprocessed input.
|
protected void |
finalize()
Closes the compressor when garbage is collected.
|
void |
finish()
When called, indicates that compression should end with the current
contents of the input buffer.
|
boolean |
finished()
Returns true if the end of the compressed data output stream has
been reached.
|
int |
getAdler()
Returns the ADLER-32 value of the uncompressed data.
|
long |
getBytesRead()
Returns the total number of uncompressed bytes input so far.
|
long |
getBytesWritten()
Returns the total number of compressed bytes output so far.
|
int |
getTotalIn()
Returns the total number of uncompressed bytes input so far.
|
int |
getTotalOut()
Returns the total number of compressed bytes output so far.
|
boolean |
needsInput()
Returns true if the input data buffer is empty and setInput()
should be called in order to provide more input.
|
void |
reset()
Resets deflater so that a new set of input data can be processed.
|
void |
setDictionary(byte[] b)
Sets preset dictionary for compression.
|
void |
setDictionary(byte[] b,
int off,
int len)
Sets preset dictionary for compression.
|
void |
setInput(byte[] b)
Sets input data for compression.
|
void |
setInput(byte[] b,
int off,
int len)
Sets input data for compression.
|
void |
setLevel(int level)
Sets the current compression level to the specified value.
|
void |
setStrategy(int strategy)
Sets the compression strategy to the specified value.
|
public static final int DEFLATED
public static final int NO_COMPRESSION
public static final int BEST_SPEED
public static final int BEST_COMPRESSION
public static final int DEFAULT_COMPRESSION
public static final int FILTERED
public static final int HUFFMAN_ONLY
public static final int DEFAULT_STRATEGY
public Deflater(int level,
boolean nowrap)
level - the compression level (0-9)nowrap - if true then use GZIP compatible compressionpublic Deflater(int level)
level - the compression level (0-9)public Deflater()
public void setInput(byte[] b,
int off,
int len)
b - the input data bytesoff - the start offset of the datalen - the length of the dataneedsInput()public void setInput(byte[] b)
b - the input data bytesneedsInput()public void setDictionary(byte[] b,
int off,
int len)
b - the dictionary data bytesoff - the start offset of the datalen - the length of the dataInflater.inflate(byte[], int, int),
Inflater.getAdler()public void setDictionary(byte[] b)
b - the dictionary data bytesInflater.inflate(byte[], int, int),
Inflater.getAdler()public void setStrategy(int strategy)
strategy - the new compression strategyIllegalArgumentException - if the compression strategy is
invalidpublic void setLevel(int level)
level - the new compression level (0-9)IllegalArgumentException - if the compression level is invalidpublic boolean needsInput()
public void finish()
public boolean finished()
public int deflate(byte[] b,
int off,
int len)
b - the buffer for the compressed dataoff - the start offset of the datalen - the maximum number of bytes of compressed datapublic int deflate(byte[] b)
b - the buffer for the compressed datapublic 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()
Submit a bug or feature Copyright © 1993, 2017, Oracle and/or its affiliates. All rights reserved.
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.