java.lang.Object
java.io.InputStream
java.io.FilterInputStream
java.util.zip.InflaterInputStream
- 所有已实现的接口:
-
Closeable,AutoCloseable
- 直接已知的子类:
-
GZIPInputStream,ZipInputStream
该类实现了用于解压缩“deflate”压缩格式数据的流过滤器。它也被用作其他解压缩过滤器的基础,比如GZIPInputStream。
- 自 JDK 版本:
- 1.1
- 参见:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected byte[]用于解压缩的输入缓冲区。protected Inflater该流的解压缩器。protected int读入输入缓冲区的总字节数。Fields declared in class java.io.FilterInputStream
in -
Constructor Summary
ConstructorsConstructorDescription创建一个具有默认解压缩器和缓冲区大小的新输入流。InflaterInputStream(InputStream in, Inflater inf) 创建一个具有指定解压缩器和默认缓冲区大小的新输入流。InflaterInputStream(InputStream in, Inflater inf, int size) 创建一个具有指定解压缩器和缓冲区大小的新输入流。 -
Method Summary
Modifier and TypeMethodDescriptionint在达到 EOF 后返回 0,否则始终返回 1。voidclose()关闭此输入流并释放与该流关联的任何系统资源。protected voidfill()使用更多数据填充输入缓冲区以进行解压缩。voidmark(int readlimit) 在此输入流中标记当前位置。boolean测试此输入流是否支持mark和reset方法。intread()读取一个未压缩数据字节。intread(byte[] b, int off, int len) 将未压缩数据读入字节数组,返回膨胀字节数。voidreset()将此流重新定位到上次在此输入流上调用mark方法时的位置。longskip(long n) 跳过指定数量的未压缩数据字节。Methods declared in class java.io.FilterInputStream
readMethods 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- 如果调用此方法。 - 参见:
-