java.applet

java.awt

java.awt.color

java.awt.datatransfer

java.awt.dnd

java.awt.event

java.awt.font

java.awt.geom

java.awt.im

java.awt.im.spi

java.awt.image

java.awt.image.renderable

java.awt.print

java.beans

java.beans.beancontext

java.io

java.lang

java.lang.annotation

java.lang.instrument

java.lang.management

java.lang.ref

java.lang.reflect

java.math

java.net

java.nio

java.nio.channels

java.nio.channels.spi

java.nio.charset

java.nio.charset.spi

java.rmi

java.rmi.activation

java.rmi.dgc

java.rmi.registry

java.rmi.server

java.security

java.security.acl

java.security.cert

java.security.interfaces

java.security.spec

java.sql

java.text

java.util

java.util.concurrent

java.util.concurrent.atomic

java.util.concurrent.locks

java.util.jar

java.util.logging

java.util.prefs

java.util.regex

java.util.zip

javax.accessibility

javax.activity

javax.crypto

javax.crypto.interfaces

javax.crypto.spec

javax.imageio

javax.imageio.event

javax.imageio.metadata

javax.imageio.plugins.bmp

javax.imageio.plugins.jpeg

javax.imageio.spi

javax.imageio.stream

javax.management

javax.management.loading

javax.management.modelmbean

javax.management.monitor

javax.management.openmbean

javax.management.relation

javax.management.remote

javax.management.remote.rmi

javax.management.timer

javax.naming

javax.naming.directory

javax.naming.event

javax.naming.ldap

javax.naming.spi

javax.net

javax.net.ssl

javax.print

javax.print.attribute

javax.print.attribute.standard

javax.print.event

javax.rmi

javax.rmi.CORBA

javax.rmi.ssl

javax.security.auth

javax.security.auth.callback

javax.security.auth.kerberos

javax.security.auth.login

javax.security.auth.spi

javax.security.auth.x500

javax.security.cert

javax.security.sasl

javax.sound.midi

javax.sound.midi.spi

javax.sound.sampled

javax.sound.sampled.spi

javax.sql

javax.sql.rowset

javax.sql.rowset.serial

javax.sql.rowset.spi

javax.swing

javax.swing.border

javax.swing.colorchooser

javax.swing.event

javax.swing.filechooser

javax.swing.plaf

javax.swing.plaf.basic

javax.swing.plaf.metal

javax.swing.plaf.multi

javax.swing.plaf.synth

javax.swing.table

javax.swing.text

javax.swing.text

javax.swing.text.parser

javax.swing.text.rtf

javax.swing.tree

javax.swing.undo

javax.transaction

javax.transaction.xa

javax.xml

javax.xml.datatype

javax.xml.namespace

javax.xml.parsers

javax.xml.transform

javax.xml.transform.dom

javax.xml.transform.sax

javax.xml.transform.stream

javax.xml.validation

javax.xml.xpath

org.ietf.jgss

org.omg.CORBA

org.omg.CORBA_2_3

org.omg.CORBA_2_3.portable

org.omg.CORBA.DynAnyPackage

org.omg.CORBA.ORBPackage

org.omg.CORBA.portable

org.omg.CORBA.TypeCodePackage

org.omg.CosNaming

org.omg.CosNaming.NamingContextExtPackage

org.omg.CosNaming.NamingContextPackage

org.omg.Dynamic

org.omg.DynamicAny

org.omg.DynamicAny.DynAnyFactoryPackage

org.omg.DynamicAny.DynAnyPackage

org.omg.IOP

org.omg.IOP.CodecFactoryPackage

org.omg.IOP.CodecPackage

org.omg.Messaging

org.omg.PortableInterceptor

org.omg.PortableInterceptor.ORBInitInfoPackage

org.omg.PortableServer

org.omg.PortableServer.CurrentPackage

org.omg.PortableServer.POAManagerPackage

org.omg.PortableServer.POAPackage

org.omg.PortableServer.portable

org.omg.PortableServer.ServantLocatorPackage

org.omg.SendingContext

org.omg.stub.java.rmi

org.w3c.dom

org.w3c.dom.bootstrap

org.w3c.dom.events

org.w3c.dom.ls

org.xml.sax

org.xml.sax.ext

org.xml.sax.helpers

allclasses-frame

allclasses-noframe

constant-values

deprecated-list

help-doc

JavaTM 2 Platform
Standard Ed. 5.0

java.util.zip
类 Inflater

java.lang.Object
  继承者 java.util.zip.Inflater

public class Inflater
extends Object

此类使用流行的 ZLIB 压缩程序库为通用解压缩提供支持。ZLIB 压缩程序库最初是作为 PNG 图形标准的一部分开发的,不受专利的保护。有关该规范的完整描述,请参见 java.util.zip 包描述

以下代码片段演示使用 DeflaterInflater 压缩和解压缩字符串的详细过程。

 // 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");
 

另请参见:
Deflater

构造方法摘要
Inflater()
          创建新的解压缩器。
Inflater(boolean nowrap)
          创建新的解压缩器。
 
方法摘要
 void end()
          关闭解压缩器并放弃所有未处理的输入。
protected  void finalize()
          回收垃圾时关闭解压缩器。
 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()
          重置 inflater 以处理新的输入数据集合。
 void setDictionary(byte[] b)
          为给定字节的数组设置预置字典。
 void setDictionary(byte[] b, int off, int len)
          为给定的字节数组设置预置字典。
 void setInput(byte[] b)
          为解压缩设置输入数据。
 void setInput(byte[] b, int off, int len)
          为解压缩设置输入数据。
 
从类 java.lang.Object 继承的方法
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

Inflater

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

注:使用 'nowrap' 选项时,还需要提供额外的 "dummy" 字节作为输入。当 ZLIB 本机库需要支持某些优化时,这是必需的。

参数:
nowrap - 如果为 true,则支持 GZIP 兼容的压缩

Inflater

public Inflater()
创建新的解压缩器。

方法详细信息

setInput

public void setInput(byte[] b,
                     int off,
                     int len)
为解压缩设置输入数据。应该在 needsInput() 返回 true 时进行调用,以指示需要更多的输入数据。

参数:
b - 输入数据字节
off - 输入数据的初始偏移量
len - 输入数据的长度
另请参见:
needsInput()

setInput

public void setInput(byte[] b)
为解压缩设置输入数据。应该在 needsInput() 返回 true 时进行调用,以指示需要更多的输入数据。

参数:
b - 输入数据字节
另请参见:
needsInput()

setDictionary

public void setDictionary(byte[] b,
                          int off,
                          int len)
为给定的字节数组设置预置字典。应该在 inflate() 返回 0 且 needsDictionary() 返回 true 时进行调用,以指示需要预置字典。可以使用方法 getAdler() 获取所需字典的 Adler-32 值。

参数:
b - 字典数据字节
off - 数据的初始偏移量
len - 数据的长度
另请参见:
needsDictionary(), getAdler()

setDictionary

public void setDictionary(byte[] b)
为给定字节的数组设置预置字典。应该在 inflate() 返回 0 且 needsDictionary() 返回 true 时调用,以指示需要预置字典。可以使用方法 getAdler() 获取所需字典的 Adler-32 值。

参数:
b - 字典数据字节
另请参见:
needsDictionary(), getAdler()

getRemaining

public int getRemaining()
返回输入缓冲区中剩余的字节总数。该方法可用于查找在完成解压缩后输入缓冲区中还有哪些字节。

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

needsInput

public boolean needsInput()
如果输入缓冲区中没有剩余数据,则返回 true。此方法用于确定是否调用 #setInputThis 以提供更多输入。

返回:
如果缓冲区中没有剩余数据,则返回 true

needsDictionary

public boolean needsDictionary()
如果解压缩需要预置字典,则返回 true。

返回:
如果解压缩需要预置字典,则返回 true
另请参见:
setDictionary(byte[], int, int)

finished

public boolean finished()
如果已到达压缩数据流的结尾,则返回 true。

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

inflate

public int inflate(byte[] b,
                   int off,
                   int len)
            throws DataFormatException
将字节解压缩到指定的缓冲区。返回实际的未压缩字节数。返回值为 0 指示应调用 needsInput() 或 needsDictionary(),以确定是否需要更多的输入数据或预置字典。在后一种情况下,getAdler() 可用于获取所需字典的 Adler-32 值。

参数:
b - 未压缩数据的缓冲区
off - 数据的初始偏移量
len - 最大未压缩字节数
返回:
实际未压缩字节数
抛出:
DataFormatException - 如果压缩数据格式无效
另请参见:
needsInput(), needsDictionary()

inflate

public int inflate(byte[] b)
            throws DataFormatException
将字节解压缩到指定的缓冲区。返回实际的未压缩字节数。返回值为 0 指示应调用 needsInput() 或 needsDictionary(),以确定是否需要更多的输入数据或预置字典。在后一种情况下,getAdler() 可用于获取所需字典的 Adler-32 值。

参数:
b - 未压缩数据的缓冲区
返回:
实际未压缩字节数
抛出:
DataFormatException - 如果压缩数据格式无效
另请参见:
needsInput(), needsDictionary()

getAdler

public int getAdler()
返回未压缩数据的 ADLER-32 值。

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

getTotalIn

public int getTotalIn()
返回到目前为止输入压缩字节的总数。

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

返回:
到目前为止输入压缩字节的总数

getBytesRead

public long getBytesRead()
返回到目前为止输入压缩字节的总数。

返回:
到目前为止输入压缩字节的总数(非负)。

getTotalOut

public int getTotalOut()
返回到目前为止输出未压缩字节的总数。

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

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

getBytesWritten

public long getBytesWritten()
返回到目前为止输出未压缩字节的总数。

返回:
到目前为止输出未压缩字节的总数(非负)

reset

public void reset()
重置 inflater 以处理新的输入数据集合。


end

public void end()
关闭解压缩器并放弃所有未处理的输入。此方法应该在不再使用该解压缩器时进行调用,但是也可以由 finalize() 方法自动调用。调用此方法后,Inflater 对象的行为将是不确定的。


finalize

protected void finalize()
回收垃圾时关闭解压缩器。

覆盖:
Object 中的 finalize

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策