- java.lang.Object
-
- java.io.InputStream
-
- java.io.FilterInputStream
-
- java.util.zip.InflaterInputStream
-
- java.util.zip.ZipInputStream
-
- All Implemented Interfaces:
-
Closeable,AutoCloseable
- 已知直接子类:
-
JarInputStream
public class ZipInputStream extends InflaterInputStream
该类实现了以ZIP文件格式读取文件的输入流过滤器。 包括对压缩和未压缩条目的支持。- 从以下版本开始:
- 1.1
-
-
Field Summary
Fields Modifier and Type Field 描述 static intCENATTstatic intCENATXstatic intCENCOMstatic intCENCRCstatic intCENDSKstatic intCENEXTstatic intCENFLGstatic intCENHDRstatic intCENHOWstatic intCENLENstatic intCENNAMstatic intCENOFFstatic longCENSIGstatic intCENSIZstatic intCENTIMstatic intCENVEMstatic intCENVERstatic intENDCOMstatic intENDHDRstatic intENDOFFstatic longENDSIGstatic intENDSIZstatic intENDSUBstatic intENDTOTstatic intEXTCRCstatic intEXTHDRstatic intEXTLENstatic longEXTSIGstatic intEXTSIZstatic intLOCCRCstatic intLOCEXTstatic intLOCFLGstatic intLOCHDRstatic intLOCHOWstatic intLOCLENstatic intLOCNAMstatic longLOCSIGstatic intLOCSIZstatic intLOCTIMstatic intLOCVER-
Fields inherited from class java.io.FilterInputStream
in
-
Fields inherited from class java.util.zip.InflaterInputStream
buf, inf, len
-
-
构造方法摘要
构造方法 Constructor 描述 ZipInputStream(InputStream in)创建一个新的ZIP输入流。ZipInputStream(InputStream in, Charset charset)创建一个新的ZIP输入流。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 intavailable()EOF到达当前条目数据后返回0,否则返回1。voidclose()关闭此输入流并释放与流相关联的任何系统资源。voidcloseEntry()关闭当前的ZIP条目,并定位流以读取下一个条目。protected ZipEntrycreateZipEntry(String name)为指定的条目名称创建一个新的ZipEntry对象。ZipEntrygetNextEntry()读取下一个ZIP文件条目,并将流定位在条目数据的开头。intread(byte[] b, int off, int len)从当前ZIP条目读取到字节数组。longskip(long n)跳过当前ZIP条目中指定的字节数。-
Methods inherited from class java.io.FilterInputStream
read
-
Methods inherited from class java.util.zip.InflaterInputStream
fill, mark, markSupported, read, reset
-
Methods inherited from class java.io.InputStream
readAllBytes, readNBytes, transferTo
-
-
-
-
字段详细信息
-
LOCSIG
public static final long LOCSIG
- 另请参见:
- Constant Field Values
-
EXTSIG
public static final long EXTSIG
- 另请参见:
- Constant Field Values
-
CENSIG
public static final long CENSIG
- 另请参见:
- Constant Field Values
-
ENDSIG
public static final long ENDSIG
- 另请参见:
- Constant Field Values
-
LOCHDR
public static final int LOCHDR
- 另请参见:
- Constant Field Values
-
EXTHDR
public static final int EXTHDR
- 另请参见:
- Constant Field Values
-
CENHDR
public static final int CENHDR
- 另请参见:
- Constant Field Values
-
ENDHDR
public static final int ENDHDR
- 另请参见:
- Constant Field Values
-
LOCVER
public static final int LOCVER
- 另请参见:
- Constant Field Values
-
LOCFLG
public static final int LOCFLG
- 另请参见:
- Constant Field Values
-
LOCHOW
public static final int LOCHOW
- 另请参见:
- Constant Field Values
-
LOCTIM
public static final int LOCTIM
- 另请参见:
- Constant Field Values
-
LOCCRC
public static final int LOCCRC
- 另请参见:
- Constant Field Values
-
LOCSIZ
public static final int LOCSIZ
- 另请参见:
- Constant Field Values
-
LOCLEN
public static final int LOCLEN
- 另请参见:
- Constant Field Values
-
LOCNAM
public static final int LOCNAM
- 另请参见:
- Constant Field Values
-
LOCEXT
public static final int LOCEXT
- 另请参见:
- Constant Field Values
-
EXTCRC
public static final int EXTCRC
- 另请参见:
- Constant Field Values
-
EXTSIZ
public static final int EXTSIZ
- 另请参见:
- Constant Field Values
-
EXTLEN
public static final int EXTLEN
- 另请参见:
- Constant Field Values
-
CENVEM
public static final int CENVEM
- 另请参见:
- Constant Field Values
-
CENVER
public static final int CENVER
- 另请参见:
- Constant Field Values
-
CENFLG
public static final int CENFLG
- 另请参见:
- Constant Field Values
-
CENHOW
public static final int CENHOW
- 另请参见:
- Constant Field Values
-
CENTIM
public static final int CENTIM
- 另请参见:
- Constant Field Values
-
CENCRC
public static final int CENCRC
- 另请参见:
- Constant Field Values
-
CENSIZ
public static final int CENSIZ
- 另请参见:
- Constant Field Values
-
CENLEN
public static final int CENLEN
- 另请参见:
- Constant Field Values
-
CENNAM
public static final int CENNAM
- 另请参见:
- Constant Field Values
-
CENEXT
public static final int CENEXT
- 另请参见:
- Constant Field Values
-
CENCOM
public static final int CENCOM
- 另请参见:
- Constant Field Values
-
CENDSK
public static final int CENDSK
- 另请参见:
- Constant Field Values
-
CENATT
public static final int CENATT
- 另请参见:
- Constant Field Values
-
CENATX
public static final int CENATX
- 另请参见:
- Constant Field Values
-
CENOFF
public static final int CENOFF
- 另请参见:
- Constant Field Values
-
ENDSUB
public static final int ENDSUB
- 另请参见:
- Constant Field Values
-
ENDTOT
public static final int ENDTOT
- 另请参见:
- Constant Field Values
-
ENDSIZ
public static final int ENDSIZ
- 另请参见:
- Constant Field Values
-
ENDOFF
public static final int ENDOFF
- 另请参见:
- Constant Field Values
-
ENDCOM
public static final int ENDCOM
- 另请参见:
- Constant Field Values
-
-
构造方法详细信息
-
ZipInputStream
public ZipInputStream(InputStream in)
创建一个新的ZIP输入流。UTF-8
charset用于解码条目名称。- 参数
-
in- 实际的输入流
-
ZipInputStream
public ZipInputStream(InputStream in, Charset charset)
创建一个新的ZIP输入流。- 参数
-
in- 实际的输入流 -
charset-该charset被用来ZIP条目名称(如果忽略解码language encoding bit ZIP条目的通用位标志的设置)。 - 从以下版本开始:
- 1.7
-
-
方法详细信息
-
getNextEntry
public ZipEntry getNextEntry() throws IOException
读取下一个ZIP文件条目,并将流定位在条目数据的开头。- 结果
- 下一个ZIP文件条目,如果没有更多条目,则为null
- 异常
-
ZipException- 如果发生ZIP文件错误 -
IOException- 如果发生I / O错误
-
closeEntry
public void closeEntry() throws IOException关闭当前的ZIP条目,并定位流以读取下一个条目。- 异常
-
ZipException- 如果发生ZIP文件错误 -
IOException- 如果发生I / O错误
-
available
public int available() throws IOExceptionEOF到达当前条目数据后返回0,否则返回1。程序不应该依赖此方法来返回可以读取而不阻止的实际字节数。
- 重写:
-
available在InflaterInputStream - 结果
- EOF前为1,EOF达到当前输入后为0。
- 异常
-
IOException- 如果发生I / O错误。
-
read
public int read(byte[] b, int off, int len) throws IOException从当前ZIP条目读取到字节数组。 如果len不为零,则该方法将阻塞,直到有些输入可用; 否则,不会读取字节,并返回0。- 重写:
-
read在InflaterInputStream - 参数
-
b- 读取数据的缓冲区 -
off- 目标数组b的起始偏移量 -
len- 读取的最大字节数 - 结果
- 读取的实际字节数,如果达到条目结束,则为-1
- 异常
-
NullPointerException- 如果b是null。 -
IndexOutOfBoundsException- 如果off为负,则len为负数,或len大于b.length - off -
ZipException- 如果发生ZIP文件错误 -
IOException- 如果发生I / O错误 - 另请参见:
-
FilterInputStream.in
-
skip
public long skip(long n) throws IOException跳过当前ZIP条目中指定的字节数。- 重写:
-
skip在InflaterInputStream - 参数
-
n- 要跳过的字节数 - 结果
- 实际跳过的字节数
- 异常
-
ZipException- 如果发生ZIP文件错误 -
IOException- 如果发生I / O错误 -
IllegalArgumentException- 如果是n < 0
-
close
public void close() throws IOException关闭此输入流并释放与流相关联的任何系统资源。- Specified by:
-
close在接口AutoCloseable - Specified by:
-
close在接口Closeable - 重写:
-
close在InflaterInputStream - 异常
-
IOException- 如果发生I / O错误 - 另请参见:
-
FilterInputStream.in
-
-