所有类


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

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部