JavaTM 2 Platform
Standard Ed. 5.0

java.util.zip
类 InflaterInputStream

java.lang.Object
  继承者 java.io.InputStream
      继承者 java.io.FilterInputStream
          继承者 java.util.zip.InflaterInputStream
所有已实现的接口:
java.io.Closeable
直接已知子类:
GZIPInputStream, ZipInputStream

public class InflaterInputStream
extends java.io.FilterInputStream

此类为解压缩 "deflate" 压缩格式的数据实现流过滤器。它还用作其他解压缩过滤器(如 GZIPInputStream)的基础。

另请参见:
Inflater

字段摘要
protected  byte[] buf
          用于解压缩的输入缓冲区。
protected  Inflater inf
          流的解压缩器。
protected  int len
          输入缓冲区的长度。
 
从类 java.io.FilterInputStream 继承的字段
in
 
构造方法摘要
InflaterInputStream(java.io.InputStream in)
          使用默认解压缩器和缓冲区大小创建一个新输入流。
InflaterInputStream(java.io.InputStream in, Inflater inf)
          创建一个带有指定解压缩器和默认缓冲区大小的新输入流。
InflaterInputStream(java.io.InputStream in, Inflater inf, int size)
          使用指定解压缩器和缓冲区大小创建一个新输入流。
 
方法摘要
 int available()
          在到达 EOF 后返回 0;否则始终返回 1。
 void close()
          关闭此输入流并释放与该流关联的所有系统资源。
protected  void fill()
          使用更多要解压缩的数据填充输入缓冲区。
 void mark(int readlimit)
          标记此输入流中的当前位置。
 boolean markSupported()
          测试此输入流是否支持 markreset 方法。
 int read()
          读取未压缩数据的字节。
 int read(byte[] b, int off, int len)
          将未压缩数据读入字节数组。
 void reset()
          将此流重新定位到对此输入流最后调用 mark 方法时的位置。
 long skip(long n)
          跳过指定的未压缩数据的字节数。
 
从类 java.io.FilterInputStream 继承的方法
read
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

inf

protected Inflater inf
流的解压缩器。


buf

protected byte[] buf
用于解压缩的输入缓冲区。


len

protected int len
输入缓冲区的长度。

构造方法详细信息

InflaterInputStream

public InflaterInputStream(java.io.InputStream in,
                           Inflater inf,
                           int size)
使用指定解压缩器和缓冲区大小创建一个新输入流。

参数:
in - 输入流
inf - 解压缩器 ("inflater")
size - 输入缓冲区大小
抛出:
IllegalArgumentException - 如果大小为 <= 0

InflaterInputStream

public InflaterInputStream(java.io.InputStream in,
                           Inflater inf)
创建一个带有指定解压缩器和默认缓冲区大小的新输入流。

参数:
in - 输入流
inf - 解压缩器 ("inflater")

InflaterInputStream

public InflaterInputStream(java.io.InputStream in)
使用默认解压缩器和缓冲区大小创建一个新输入流。

参数:
in - 输入流
方法详细信息

read

public int read()
         throws java.io.IOException
读取未压缩数据的字节。在足够的输入可用于解压缩之前,此方法将阻塞。

覆盖:
java.io.FilterInputStream 中的 read
返回:
如果到达已压缩输入的结尾,则返回所读取的字节
抛出:
java.io.IOException - 如果发生 I/O 错误
另请参见:
FilterInputStream.in

read

public int read(byte[] b,
                int off,
                int len)
         throws java.io.IOException
将未压缩数据读入字节数组。在可以解压缩某些输入之前,此方法将阻塞。

覆盖:
java.io.FilterInputStream 中的 read
参数:
b - 读入数据的缓冲区
off - 数据的初始偏移量
len - 读取字节的最大数
返回:
读取字节的实际数;或者,如果到达已压缩输入的结尾或需要预置字典,则返回 -1
抛出:
ZipException - 如果发生 ZIP 格式错误
java.io.IOException - 如果发生 I/O 错误
另请参见:
FilterInputStream.in

available

public int available()
              throws java.io.IOException
在到达 EOF 后返回 0;否则始终返回 1。

程序不应依靠此方法返回无阻塞读取的实际字节数。

覆盖:
java.io.FilterInputStream 中的 available
返回:
在到达 EOF 之前返回 1;在到达 EOF 之后返回 0。
抛出:
java.io.IOException - 如果发生 I/O 错误。
另请参见:
FilterInputStream.in

skip

public long skip(long n)
          throws java.io.IOException
跳过指定的未压缩数据的字节数。

覆盖:
java.io.FilterInputStream 中的 skip
参数:
n - 要跳过的字节数
返回:
实际跳过的字节数。
抛出:
java.io.IOException - 如果发生 I/O 错误
IllegalArgumentException - 如果 n < 0

close

public void close()
           throws java.io.IOException
关闭此输入流并释放与该流关联的所有系统资源。

指定者:
接口 java.io.Closeable 中的 close
覆盖:
java.io.FilterInputStream 中的 close
抛出:
java.io.IOException - 如果发生 I/O 错误
另请参见:
FilterInputStream.in

fill

protected void fill()
             throws java.io.IOException
使用更多要解压缩的数据填充输入缓冲区。

抛出:
java.io.IOException - 如果发生 I/O 错误

markSupported

public boolean markSupported()
测试此输入流是否支持 markreset 方法。InflaterInputStreammarkSupported 方法返回 false

覆盖:
java.io.FilterInputStream 中的 markSupported
返回:
一个 boolean 值,指示此流类型是否支持 markreset 方法。
另请参见:
InputStream.mark(int), InputStream.reset()

mark

public void mark(int readlimit)
标记此输入流中的当前位置。

InflaterInputStreammark 方法不执行任何操作。

覆盖:
java.io.FilterInputStream 中的 mark
参数:
readlimit - 在标记位置变为无效前可以读取字节的最大限制。
另请参见:
InputStream.reset()

reset

public void reset()
           throws java.io.IOException
将此流重新定位到对此输入流最后调用 mark 方法时的位置。

除了抛出 IOException 之外,类 InflaterInputStream 的方法 reset 不执行任何操作。

覆盖:
java.io.FilterInputStream 中的 reset
抛出:
java.io.IOException - 如果调用此方法。
另请参见:
InputStream.mark(int), IOException

JavaTM 2 Platform
Standard Ed. 5.0

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

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