- java.lang.Object
-
- java.io.InputStream
-
- java.io.FilterInputStream
-
- java.util.zip.InflaterInputStream
-
- 实现的所有接口
-
Closeable
,AutoCloseable
- 已知直接子类:
-
GZIPInputStream
,ZipInputStream
public class InflaterInputStream extends FilterInputStream
此类实现了一个流过滤器,用于以“deflate”压缩格式解压缩数据。 它还用作其他解压缩过滤器的基础,例如GZIPInputStream。- 从以下版本开始:
- 1.1
- 另请参见:
-
Inflater
-
-
构造方法摘要
构造方法 构造器 描述 InflaterInputStream(InputStream in)
使用默认的解压缩程序和缓冲区大小创建新的输入流。InflaterInputStream(InputStream in, Inflater inf)
使用指定的解压缩程序和默认缓冲区大小创建新的输入流。InflaterInputStream(InputStream in, Inflater inf, int size)
使用指定的解压缩程序和缓冲区大小创建新的输入流。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 int
available()
达到EOF后返回0,否则始终返回1。void
close()
关闭此输入流并释放与该流关联的所有系统资源。protected void
fill()
使用更多数据填充输入缓冲区以进行解压缩。void
mark(int readlimit)
标记此输入流中的当前位置。boolean
markSupported()
测试此输入流是否支持mark
和reset
方法。int
read()
读取一段未压缩数据。int
read(byte[] b, int off, int len)
将未压缩的数据读入字节数组。void
reset()
将此流重新定位到上次在此输入流上调用mark
方法时的位置。long
skip(long n)
跳过未压缩数据的指定字节数。-
声明方法的类 java.io.FilterInputStream
read
-
声明方法的类 java.io.InputStream
nullInputStream, readAllBytes, readNBytes, readNBytes, transferTo
-
-
-
-
字段详细信息
-
inf
protected Inflater inf
此流的解压缩程序。
-
buf
protected byte[] buf
用于解压缩的输入缓冲区。
-
len
protected int len
输入缓冲区的长度。
-
-
构造方法详细信息
-
InflaterInputStream
public InflaterInputStream(InputStream in, Inflater inf, int size)
使用指定的解压缩程序和缓冲区大小创建新的输入流。- 参数
-
in
- 输入流 -
inf
- 解压缩程序(“inflater”) -
size
- 输入缓冲区大小 - 异常
-
IllegalArgumentException
- 如果size <= 0
-
InflaterInputStream
public InflaterInputStream(InputStream in, Inflater inf)
使用指定的解压缩程序和默认缓冲区大小创建新的输入流。- 参数
-
in
- 输入流 -
inf
- 解压缩程序(“inflater”)
-
InflaterInputStream
public InflaterInputStream(InputStream in)
使用默认的解压缩程序和缓冲区大小创建新的输入流。- 参数
-
in
- 输入流
-
-
方法详细信息
-
read
public int read() throws IOException
读取一段未压缩数据。 此方法将阻止,直到有足够的输入可用于解压缩。- 重写:
-
read
在FilterInputStream
类 - 结果
- 读取的字节,如果到达压缩输入的末尾,则返回-1
- 异常
-
IOException
- 如果发生I / O错误 - 另请参见:
-
FilterInputStream.in
-
read
public int read(byte[] b, int off, int len) throws IOException
将未压缩的数据读入字节数组。 如果len
不为零,则该方法将阻塞,直到某些输入可以解压缩; 否则,不读取任何字节,返回0
。- 重写:
-
read
,类FilterInputStream
- 参数
-
b
- 读取数据的缓冲区 -
off
- 目标阵列b
的起始偏移量 -
len
- 读取的最大字节数 - 结果
- 读取的实际字节数,如果达到压缩输入的结尾或需要预设字典,则返回-1
- 异常
-
NullPointerException
- 如果b
是null
。 -
IndexOutOfBoundsException
- 如果off
为负数,则len
为负数,或len
为大于b.length - off
-
ZipException
- 如果发生ZIP格式错误 -
IOException
- 如果发生I / O错误 - 另请参见:
-
FilterInputStream.in
-
available
public int available() throws IOException
达到EOF后返回0,否则始终返回1。程序不应指望此方法返回可以无阻塞地读取的实际字节数。
- 重写:
-
available
在FilterInputStream
类 - 结果
- EOF前为1,EOF后为0。
- 异常
-
IOException
- 如果发生I / O错误。
-
skip
public long skip(long n) throws IOException
跳过未压缩数据的指定字节数。- 重写:
-
skip
在FilterInputStream
类 - 参数
-
n
- 要跳过的字节数 - 结果
- 跳过的实际字节数。
- 异常
-
IOException
- 如果发生I / O错误 -
IllegalArgumentException
- 如果n < 0
-
close
public void close() throws IOException
关闭此输入流并释放与该流关联的所有系统资源。- Specified by:
-
close
接口AutoCloseable
- Specified by:
-
close
接口Closeable
- 重写:
-
close
在FilterInputStream
类 - 异常
-
IOException
- 如果发生I / O错误 - 另请参见:
-
FilterInputStream.in
-
fill
protected void fill() throws IOException
使用更多数据填充输入缓冲区以进行解压缩。- 异常
-
IOException
- 如果发生I / O错误
-
markSupported
public boolean markSupported()
测试此输入流是否支持mark
和reset
方法。 该markSupported
的方法InflaterInputStream
返回false
。- 重写:
-
markSupported
在FilterInputStream
类 - 结果
-
boolean
指示此流类型是否支持mark
和reset
方法。 - 另请参见:
-
InputStream.mark(int)
,InputStream.reset()
-
mark
public void mark(int readlimit)
标记此输入流中的当前位置。mark
方法InflaterInputStream
什么都不做。- 重写:
-
mark
在FilterInputStream
类 - 参数
-
readlimit
- 标记位置变为无效之前可读取的最大字节数限制。 - 另请参见:
-
InputStream.reset()
-
reset
public void reset() throws IOException
将此流重新定位到最后一次在此输入流上调用mark
方法时的位置。类
InflaterInputStream
的方法reset
除了抛出IOException
之外什么都不IOException
。- 重写:
-
reset
,类FilterInputStream
- 异常
-
IOException
- 如果调用此方法。 - 另请参见:
-
InputStream.mark(int)
,IOException
-
-