Most visited

Recently visited

Added in API level 1

Inflater

public class Inflater
extends Object

java.lang.Object
   ↳ java.util.zip.Inflater


该类使用流行的ZLIB压缩库为通用目的解压提供支持。 ZLIB压缩库最初是作为PNG图形标准的一部分开发的,不受专利保护。 它在java.util.zip package description的规格中有详细描述。

以下代码片段演示了使用 DeflaterInflater对字符串进行的简单压缩和解压缩。

 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
 }
 

也可以看看:

Summary

Public constructors

Inflater(boolean nowrap)

创建一个新的解压缩器。

Inflater()

创建一个新的解压缩器。

Public methods

void end()

关闭解压缩器并丢弃任何未处理的输入。

boolean finished()

如果已到达压缩数据流的末尾,则返回true。

int getAdler()

返回未压缩数据的ADLER-32值。

long getBytesRead()

返回迄今为止输入的压缩字节总数。

long getBytesWritten()

返回到目前为止输出的未压缩字节的总数。

int getRemaining()

返回输入缓冲区中剩余的字节总数。

int getTotalIn()

返回迄今为止输入的压缩字节总数。

int getTotalOut()

返回到目前为止输出的未压缩字节的总数。

int inflate(byte[] b)

将字节解压缩到指定的缓冲区中。

int inflate(byte[] b, int off, int len)

将字节解压缩到指定的缓冲区中。

boolean needsDictionary()

如果解压缩需要预设字典,则返回true。

boolean needsInput()

如果输入缓冲区中没有数据,则返回true。

void reset()

重置充气器,以便可以处理一组新的输入数据。

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

将预设字典设置为给定的字节数组。

void setDictionary(byte[] b)

将预设字典设置为给定的字节数组。

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

设置解压缩的输入数据。

void setInput(byte[] b)

设置解压缩的输入数据。

Protected methods

void finalize()

收集垃圾时关闭解压缩程序。

Inherited methods

From class java.lang.Object

Public constructors

Inflater

Added in API level 1
Inflater (boolean nowrap)

创建一个新的解压缩器。 如果参数'nowrap'为true,则不会使用ZLIB头和校验和字段。 这提供了与GZIP和PKZIP使用的压缩格式的兼容性。

注意:使用'nowrap'选项时,还需要提供一个额外的“虚拟”字节作为输入。 这是ZLIB本地库所必需的,以支持某些优化。

Parameters
nowrap boolean: if true then support GZIP compatible compression

Inflater

Added in API level 1
Inflater ()

创建一个新的解压缩器。

Public methods

end

Added in API level 1
void end ()

关闭解压缩器并丢弃任何未处理的输入。 当解压缩器不再被使用时应该调用此方法,但也会由finalize()方法自动调用此方法。 一旦调用这个方法,Inflater对象的行为就是未定义的。

finished

Added in API level 1
boolean finished ()

如果已到达压缩数据流的末尾,则返回true。

Returns
boolean true if the end of the compressed data stream has been reached

getAdler

Added in API level 1
int getAdler ()

返回未压缩数据的ADLER-32值。

Returns
int the ADLER-32 value of the uncompressed data

getBytesRead

Added in API level 1
long getBytesRead ()

返回迄今为止输入的压缩字节总数。

Returns
long the total (non-negative) number of compressed bytes input so far

getBytesWritten

Added in API level 1
long getBytesWritten ()

返回到目前为止输出的未压缩字节的总数。

Returns
long the total (non-negative) number of uncompressed bytes output so far

getRemaining

Added in API level 1
int getRemaining ()

返回输入缓冲区中剩余的字节总数。 这可以用于找出解压缩完成后输入缓冲区中还有哪些字节。

Returns
int the total number of bytes remaining in the input buffer

getTotalIn

Added in API level 1
int getTotalIn ()

返回迄今为止输入的压缩字节总数。

由于字节数可能大于Integer.MAX_VALUE,因此 getBytesRead()方法是获取此信息的首选方法。

Returns
int the total number of compressed bytes input so far

getTotalOut

Added in API level 1
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.

Returns
int the total number of uncompressed bytes output so far

inflate

Added in API level 1
int inflate (byte[] b)

将字节解压缩到指定的缓冲区中。 返回未压缩的实际字节数。 返回值0表示应该调用needsInput()或needsDictionary()以确定是否需要更多输入数据或预设字典。 在后一种情况下,可以使用getAdler()来获取所需字典的Adler-32值。

Parameters
b byte: the buffer for the uncompressed data
Returns
int the actual number of uncompressed bytes
Throws
DataFormatException if the compressed data format is invalid

也可以看看:

inflate

Added in API level 1
int inflate (byte[] b, 
                int off, 
                int len)

将字节解压缩到指定的缓冲区中。 返回未压缩的实际字节数。 返回值0表示应该调用needsInput()或needsDictionary()以确定是否需要更多输入数据或预设字典。 在后一种情况下,可以使用getAdler()来获取所需字典的Adler-32值。

Parameters
b byte: the buffer for the uncompressed data
off int: the start offset of the data
len int: the maximum number of uncompressed bytes
Returns
int the actual number of uncompressed bytes
Throws
DataFormatException if the compressed data format is invalid

也可以看看:

needsDictionary

Added in API level 1
boolean needsDictionary ()

如果解压缩需要预设字典,则返回true。

Returns
boolean true if a preset dictionary is needed for decompression

也可以看看:

needsInput

Added in API level 1
boolean needsInput ()

如果输入缓冲区中没有数据,则返回true。 这可以用来确定是否应该调用#setInput以提供更多输入。

Returns
boolean true if no data remains in the input buffer

reset

Added in API level 1
void reset ()

重置充气器,以便可以处理一组新的输入数据。

setDictionary

Added in API level 1
void setDictionary (byte[] b, 
                int off, 
                int len)

将预设字典设置为给定的字节数组。 当inflate()返回0时应该被调用,needsDictionary()返回true表示需要预置字典。 方法getAdler()可用于获取所需字典的Adler-32值。

Parameters
b byte: the dictionary data bytes
off int: the start offset of the data
len int: the length of the data

也可以看看:

setDictionary

Added in API level 1
void setDictionary (byte[] b)

将预设字典设置为给定的字节数组。 当inflate()返回0时应该被调用,needsDictionary()返回true表示需要预置字典。 方法getAdler()可用于获取所需字典的Adler-32值。

Parameters
b byte: the dictionary data bytes

也可以看看:

setInput

Added in API level 1
void setInput (byte[] b, 
                int off, 
                int len)

设置解压缩的输入数据。 每当needsInput()返回true时应该调用,表示需要更多输入数据。

Parameters
b byte: the input data bytes
off int: the start offset of the input data
len int: the length of the input data

也可以看看:

setInput

Added in API level 1
void setInput (byte[] b)

设置解压缩的输入数据。 每当needsInput()返回true时应该调用,表示需要更多输入数据。

Parameters
b byte: the input data bytes

也可以看看:

Protected methods

finalize

Added in API level 1
void finalize ()

收集垃圾时关闭解压缩程序。

Hooray!