Java Fundamental Classes Reference

Previous Chapter 18
The java.util.zip Package
Next
 

Deflater

Name

Deflater

Synopsis

Class Name:

java.util.zip.Deflater

Superclass:

java.lang.Object

Immediate Subclasses:

None

Interfaces Implemented:

None

Availability:

New as of JDK 1.1

Description

The Deflater class provides support for general-purpose data compression. The class uses the ZLIB compression algorithms described in RFC 1950, RFC 1951, and RFC 1952. These documents can be found at:

The Inflater class uncompresses data that has been compressed using Deflater.

The DeflaterOutputStream uses an internal Deflater to compress data. Typically, you do not need to create a Deflater; instead, you can just use an instance of one of the subclasses of DeflaterOutputStream : GZIPOutputStream or ZipOutputStream.

Class Summary

public class java.util.zip.Deflater extends java.lang.Object {
  // Constants
  public static final int BEST_COMPRESSION;
  public static final int BEST_SPEED;
  public static final int DEFAULT_COMPRESSION;
  public static final int DEFAULT_STRATEGY;
  public static final int DEFLATED;
  public static final int FILTERED;
  public static final int HUFFMAN_ONLY;
  public static final int NO_COMPRESSION;
  // Constructors
  public Deflater();
  public Deflater(int level);
  public Deflater(int level, boolean nowrap);
  // Public Instance Methods
  public int deflate(byte[] b);
  public synchronized native int deflate(byte[] b, int off, int len);
  public synchronized native void end();
  public synchronized void finish();
  public synchronized boolean finished();
  public synchronized native int getAdler();
  public synchronized native int getTotalIn();
  public synchronized native int getTotalOut();
  public boolean needsInput();
  public synchronized native void reset();
  public void setDictionary(byte[] b);
  public synchronized native void setDictionary(byte[] b, int off, int len);
  public void setInput(byte[] b);
  public synchronized void setInput(byte[] b, int off, int len);
  public synchronized void setLevel(int level);
  public synchronized void setStrategy(int strategy);
  // Protected Instance Methods
  protected void finalize();
}

Constants

BEST_COMPRESSION

public static final int BEST_COMPRESSION = 9

Description

A constant that represents a compression level that sacrifices speed for the smallest compressed data size. The compression level for a Deflater object can be set with setLevel(), where the level ranges from 0 to 9.

BEST_SPEED

public static final int BEST_SPEED = 1

Description

A constant that represents a compression level that sacrifices compressed data size for speed. The compression level for a Deflater object can be set with setLevel(), where the level ranges from 0 to 9.

DEFAULT_COMPRESSION

public static final int DEFAULT_COMPRESSION = -1

Description

A constant that represents the default compression level.

DEFAULT_STRATEGY

public static final int DEFAULT_STRATEGY

Description

A constant that represents the default compression strategy.

DEFLATED

public static final int DEFLATED

Description

A constant that represents a compression method that uses the deflate algorithm.

FILTERED

public static final int FILTERED

Description

A constant that represents a compression strategy that works well for small values with a random distribution.

HUFFMAN_ONLY

public static final int HUFFMAN_ONLY

Description

A constant that represents a compression strategy that uses only Huffman coding.

NO_COMPRESSION

public static final int NO_COMPRESSION = 0

Description

A constant that represents a compression level that does not compress data at all. The compression level for a Deflater object can be set with setLevel(), where the level ranges from 0 to 9.

Constructors

Deflater

public Deflater()

Description

This constructor creates a Deflater that generates compressed data in the ZLIB format using the DEFAULT_COMPRESSION level.

public Deflater(int level)

Parameters

level

The compression level, from 0 (NO_COMPRESSION) to 9 (BEST_COMPRESSION).

Description

This constructor creates a Deflater that generates compressed data in the ZLIB format using the given compression level.

public Deflater(int level, boolean nowrap)

Parameters

level

The compression level, from 0 (NO_COMPRESSION) to 9 (BEST_COMPRESSION).

nowrap

A boolean value that specifies whether or not the ZLIB header and checksum data are omitted from the compressed data.

Description

This constructor creates a Deflater that generates compressed data using the given compression level. If nowrap is true, the ZLIB header and checksum fields are not used, which means that the compressed data is in the format used by GZIP and PKZIP. If the parameter is false, the data is compressed into ZLIB format.

Public Instance Methods

deflate

public int deflate(byte[] b)

Parameters

b

A byte array to be filled.

Returns

The number of compressed bytes actually written to the array or 0 if more data may be required.

Description

This method compresses the data passed to setInput() and fills the given array with the compressed data. If this method returns zero, needsInput() should be called to determine whether the Deflater needs more data in its input buffer.

public synchronized native int deflate(byte[] b, int off, int len)

Parameters

b

A byte array to be filled.

off

An offset into the byte array.

len

The number of bytes to fill.

Returns

The number of compressed bytes actually written to the array or 0 if more data may be required.

Description

This method compresses the data passed to setInput() and writes len bytes of the compressed data into the given array, starting at off. If this method returns 0, needsInput() should be called to determine whether the Deflater needs more data in its input buffer.

end

public synchronized native void end()

Description

This method discards any uncompressed input data and frees up internal buffers.

finish

public synchronized void finish()

Description

This method tells the Deflater that the compression should end with the data that currently occupies the input buffer.

finished

public synchronized boolean finished()

Returns

A boolean value that indicates whether or not the end of the compressed data has been reached.

Description

This method returns true if the last of the compressed data has been read using deflate(). Otherwise it returns false.

getAdler

public synchronized native int getAdler()

Returns

The Adler-32 checksum value of the uncompressed data.

Description

This method returns an Adler32 checksum value that is calculated on the uncompressed data passed to setInput().

getTotalIn

public synchronized native int getTotalIn()

Returns

The total number of bytes that have been input so far.

Description

This method returns the number of bytes that have been passed to setInput() since this Deflater was created or since reset()was last called.

getTotalOut

public synchronized native int getTotalOut()

Returns

The total number of bytes that have been output so far.

Description

This method returns the number of bytes that have been read from deflate() since this Deflater was created, or since reset() was last called.

needsInput

public boolean needsInput()

Returns

A boolean value that indicates whether or not the input buffer is empty.

Description

This method returns true if the input buffer is empty. Otherwise it returns false.

reset

public synchronized native void reset()

Description

This method resets the Deflater to the state it was in when it was created, which means that a new set of data can be compressed.

setDictionary

public void setDictionary(byte[] b)

Parameters

b

An array of byte values.

Description

This method sets the preset dictionary for compression using the data in the given array.

 public synchronized native void setDictionary(byte[] b, int off, int len) 

Parameters

b

An array of byte values.

off

An offset into the byte array.

len

The number of bytes to use.

Description

This method sets the preset dictionary for compression using len bytes from the given array, starting from off.

setInput

public void setInput(byte[] b)

Parameters

b

An array of byte values.

Description

This method places the contents of the given array into the input buffer of this Deflater. Use the deflate() method to compress the data and retrieve it in compressed form.

public synchronized void setInput(byte[] b, int off, int len)

Parameters

b

An array of byte values.

off

An offset into the byte array.

len

The number of bytes to use.

Description

This method places len bytes from the given array, starting at off, into the input buffer of this Deflater. Use the deflate() method to compress the data and retrieve it in compressed form.

setLevel

public synchronized void setLevel(int level)

Parameters

level

The compression level, from 0 (NO_COMPRESSION) to 9 (BEST_COMPRESSION).

Throws

IllegalArgumentException

If level is not valid.

Description

This method sets the compression level of this Deflater. A value of 0 corresponds to NO_COMPRESSION. A value of 1 indicates the fastest, least space-efficient compression level (BEST_SPEED). A value of 9 indicates the slowest, most space-efficient compression level (BEST_COMPRESSION).

setStrategy

public synchronized void setStrategy(int strategy)

Parameters

strategy

The compression strategy.

Throws

IllegalArgumentException

If strategy is not valid.

Description

This method sets the compression strategy of this Deflater, which should be one of FILTERED, HUFFMAN_ONLY, or DEFAULT_STRATEGY.

Protected Instance Methods

finalize

protected void finalize()

Overrides

Object.finalize()

Description

This method calls end() when this Deflater is garbage collected.

Inherited Methods

Method

Inherited From

Method

Inherited From

clone()

Object

equals(Object)

Object

getClass()

Object

hashCode()

Object

notify()

Object

notifyAll()

Object

toString()

Object

wait()

Object

wait(long)

Object

wait(long, int)

Object

See Also

DeflaterOutputStream, Inflater, GZIPOutputStream, ZipOutputStream


Previous Home Next
DataFormatException Book Index DeflaterOutputStream

Java in a Nutshell Java Language Reference Java AWT Java Fundamental Classes Exploring Java