java.lang.Object
java.io.InputStream
java.io.FilterInputStream
java.util.zip.InflaterInputStream
- 所有已实现的接口:
Closeable,AutoCloseable
- 已知子类:
GZIPInputStream,ZipInputStream
此类实现了一个流过滤器,用于以“deflate”压缩格式解压缩数据。它还用作其他解压缩过滤器的基础,例如 GZIPInputStream。
- 自从:
- 1.1
- 参见:
-
字段摘要
字段修饰符和类型Field描述protected byte[]用于解压缩的输入缓冲区。protected Inflater此流的解压缩程序。protected int读入输入缓冲区的总字节数。在类 java.io.FilterInputStream 中声明的字段
in -
构造方法总结
构造方法构造方法描述创建具有默认解压缩器和缓冲区大小的新输入流。InflaterInputStream(InputStream in, Inflater inf) 使用指定的解压缩程序和默认缓冲区大小创建新的输入流。InflaterInputStream(InputStream in, Inflater inf, int size) 创建具有指定解压缩器和缓冲区大小的新输入流。 -
方法总结
修饰符和类型方法描述int到达 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) 跳过指定字节数的未压缩数据。在类 java.io.FilterInputStream 中声明的方法
read在类 java.io.InputStream 中声明的方法
nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo
-
字段详细信息
-
inf
此流的解压缩程序。 -
buf
protected byte[] buf用于解压缩的输入缓冲区。 -
len
protected int len读入输入缓冲区的总字节数。
-
-
构造方法详细信息
-
InflaterInputStream
创建具有指定解压缩器和缓冲区大小的新输入流。- 参数:
in- 输入流inf- 解压缩器(“inflater”)size- 输入缓冲区大小- 抛出:
IllegalArgumentException- 如果size <= 0
-
InflaterInputStream
使用指定的解压缩程序和默认缓冲区大小创建新的输入流。- 参数:
in- 输入流inf- 解压缩器(“inflater”)
-
InflaterInputStream
创建具有默认解压缩器和缓冲区大小的新输入流。- 参数:
in- 输入流
-
-
方法详情
-
read
读取一个字节的未压缩数据。此方法将阻塞,直到有足够的输入可用于解压缩。- 重写:
read在类FilterInputStream中- 返回:
- 读取的字节,如果到达压缩输入的末尾则为 -1
- 抛出:
IOException- 如果发生 I/O 错误- 参见:
-
read
将未压缩的数据读入字节数组,返回膨胀的字节数。如果len不为零,该方法将阻塞,直到可以解压缩某些输入;否则,不读取任何字节并返回0。如果此方法返回非零整数n然后
buf[off]通过buf[off+n-1]包含未压缩的数据。元素内容buf[off+n]到buf[off+len-1]未定义,与InputStream超类的规范相反,因此实现可以在膨胀操作期间自由修改这些元素。如果此方法返回-1或抛出异常,则buf[off]到buf[off+的内容len-1]未定义。- 重写:
read在类FilterInputStream中- 参数:
b- 读取数据的缓冲区off- 目标数组中的起始偏移量blen- 读取的最大字节数- 返回:
- 膨胀的实际字节数,如果已达到压缩输入的末尾或需要预设字典,则为 -1
- 抛出:
NullPointerException- 如果b是null。IndexOutOfBoundsException- 如果off为负,len为负,或者len大于b.length - offZipException- 如果出现 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
用更多数据填充输入缓冲区以解压缩。- 实现要求:
-
此方法将从元素
0开始读取最多buf.length 个字节到输入缓冲区buf中。len字段将设置为读取的字节数。 - 抛出:
IOException- 如果发生 I/O 错误EOFException- 如果意外到达输入流的末尾
-
markSupported
public boolean markSupported()测试此输入流是否支持mark和reset方法。InflaterInputStream的markSupported方法返回false。- 重写:
markSupported在类FilterInputStream中- 返回:
boolean指示此流类型是否支持mark和reset方法。- 参见:
-
mark
public void mark(int readlimit) 标记此输入流中的当前位置。- 重写:
mark在类FilterInputStream中- 实现要求:
InflaterInputStream的mark方法什么都不做。- 参数:
readlimit- 在标记位置变为无效之前可以读取的最大字节数限制。- 参见:
-
reset
将此流重新定位到上次对此输入流调用mark方法时的位置。- 重写:
reset在类FilterInputStream中- 实现要求:
-
类
InflaterInputStream的方法reset除了抛出一个IOException之外什么都不做。 - 抛出:
IOException- 如果调用此方法。- 参见:
-