java.lang.Object
java.io.InputStream
java.io.FilterInputStream
java.util.zip.InflaterInputStream
- 所有已实现的接口:
-
Closeable
,AutoCloseable
- 直接已知的子类:
-
GZIPInputStream
,ZipInputStream
该类实现了用于解压缩“deflate”压缩格式数据的流过滤器。它也被用作其他解压缩过滤器的基础,比如GZIPInputStream。
- 自 JDK 版本:
- 1.1
- 参见:
-
Field Summary
Modifier and TypeFieldDescriptionprotected byte[]
用于解压缩的输入缓冲区。protected Inflater
该流的解压缩器。protected int
读入输入缓冲区的总字节数。Fields declared in class java.io.FilterInputStream
in
-
Constructor Summary
ConstructorDescription创建一个具有默认解压缩器和缓冲区大小的新输入流。InflaterInputStream
(InputStream in, Inflater inf) 创建一个具有指定解压缩器和默认缓冲区大小的新输入流。InflaterInputStream
(InputStream in, Inflater inf, int size) 创建一个具有指定解压缩器和缓冲区大小的新输入流。 -
Method Summary
Modifier and TypeMethodDescriptionint
在达到 EOF 后返回 0,否则始终返回 1。void
close()
关闭此输入流并释放与该流关联的任何系统资源。protected void
fill()
使用更多数据填充输入缓冲区以进行解压缩。void
mark
(int readlimit) 在此输入流中标记当前位置。boolean
测试此输入流是否支持mark
和reset
方法。int
read()
读取一个未压缩数据字节。int
read
(byte[] b, int off, int len) 将未压缩数据读入字节数组,返回膨胀字节数。void
reset()
将此流重新定位到上次在此输入流上调用mark
方法时的位置。long
skip
(long n) 跳过指定数量的未压缩数据字节。Methods declared in class java.io.FilterInputStream
read
Methods declared in class java.io.InputStream
nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo
-
Field Details
-
inf
该流的解压缩器。 -
buf
protected byte[] buf用于解压缩的输入缓冲区。 -
len
protected int len读入输入缓冲区的总字节数。
-
-
Constructor Details
-
InflaterInputStream
创建一个具有指定解压缩器和缓冲区大小的新输入流。- 参数:
-
in
- 输入流 -
inf
- 解压缩器("inflater") -
size
- 输入缓冲区大小 - 抛出:
-
IllegalArgumentException
- 如果size <= 0
-
InflaterInputStream
创建一个具有指定解压缩器和默认缓冲区大小的新输入流。- 参数:
-
in
- 输入流 -
inf
- 解压缩器("inflater")
-
InflaterInputStream
创建一个具有默认解压缩器和缓冲区大小的新输入流。- 参数:
-
in
- 输入流
-
-
Method Details
-
read
读取一个未压缩数据字节。此方法将阻塞,直到有足够的输入可用于解压缩。- 覆盖:
-
read
在类FilterInputStream
中 - 返回:
- 读取的字节,如果达到压缩输入的末尾则返回 -1
- 抛出:
-
IOException
- 如果发生 I/O 错误
-
read
在达到 EOF 后返回 0,否则始终返回 1。程序不应该依赖此方法返回可以无阻塞读取的实际字节数。
- 覆盖:
-
read
在类FilterInputStream
中 - 参数:
-
b
- 读入数据的缓冲区 -
off
- 目标数组b
的起始偏移量 -
len
- 最大读取字节数 - 返回:
- 实际膨胀的字节数,如果达到压缩输入的末尾或需要预设字典则返回 -1
- 抛出:
-
NullPointerException
- 如果b
为null
-
IndexOutOfBoundsException
- 如果off
为负数,len
为负数,或len
大于b.length - off
-
ZipException
- 如果发生 ZIP 格式错误 -
IOException
- 如果发生 I/O 错误
-
available
在达到 EOF 后返回 0,否则始终返回 1。程序不应该依赖此方法返回可以无阻塞读取的实际字节数。
- 覆盖:
-
available
在类FilterInputStream
中 - 返回:
- 在 EOF 前返回 1,在 EOF 后返回 0。
- 抛出:
-
IOException
- 如果发生 I/O 错误
-
skip
跳过指定数量的未压缩数据字节。- 覆盖:
-
skip
在类FilterInputStream
中 - 参数:
-
n
- 要跳过的字节数 - 返回:
- 实际跳过的字节数。
- 抛出:
-
IOException
- 如果发生 I/O 错误 -
IllegalArgumentException
- 如果n < 0
-
close
关闭此输入流并释放与该流关联的任何系统资源。- 指定者:
-
close
在接口AutoCloseable
中 - 指定者:
-
close
在接口Closeable
中 - 覆盖:
-
close
在类FilterInputStream
中 - 抛出:
-
IOException
- 如果发生 I/O 错误
-
fill
使用更多数据填充输入缓冲区以进行解压缩。- 实现要求:
-
此方法将最多读取
buf
.length 字节到输入缓冲区buf
,从元素0
开始。字段len
将设置为读取的字节数。 - 抛出:
-
IOException
- 如果发生 I/O 错误 -
EOFException
- 如果意外到达输入流的结尾
-
markSupported
public boolean markSupported()测试此输入流是否支持mark
和reset
方法。InflaterInputStream
的markSupported
方法返回false
。- 覆盖:
-
markSupported
在类FilterInputStream
中 - 返回:
-
一个表示此流类型是否支持
mark
和reset
方法的boolean
。
-
mark
public void mark(int readlimit) 标记此输入流的当前位置。- 覆盖:
-
mark
在类FilterInputStream
- 实现要求:
-
InflaterInputStream
的mark
方法不执行任何操作。 - 参数:
-
readlimit
- 在标记位置变为无效之前可以读取的最大字节数。 - 参见:
-
reset
将此流重新定位到上次在此输入流上调用mark
方法时的位置。- 覆盖:
-
reset
在类FilterInputStream
- 实现要求:
-
InflaterInputStream
类的reset
方法除了抛出IOException
外不执行任何操作。 - 抛出:
-
IOException
- 如果调用此方法。 - 参见:
-