JavaTM Platform
Standard Ed. 6

java.util.zip
类 Inflater

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

public class Inflater
extends Object

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

以下代码片段演示使用 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
 }
 

另请参见:
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)