- java.lang.Object
-
- java.io.InputStream
-
- java.io.FilterInputStream
-
- java.util.zip.InflaterInputStream
-
- java.util.zip.ZipInputStream
-
- java.util.jar.JarInputStream
-
- All Implemented Interfaces:
-
Closeable
,AutoCloseable
public class JarInputStream extends ZipInputStream
JarInputStream
类用于从任何输入流读取JAR文件的内容。 它扩展了类java.util.zip.ZipInputStream
,支持阅读可选的Manifest
条目。Manifest
可用于存储有关JAR文件及其条目的元信息。- 从以下版本开始:
- 1.2
- 另请参见:
-
Manifest
,ZipInputStream
-
-
Field Summary
Fields Modifier and Type Field 描述 static int
CENATT
static int
CENATX
static int
CENCOM
static int
CENCRC
static int
CENDSK
static int
CENEXT
static int
CENFLG
static int
CENHDR
static int
CENHOW
static int
CENLEN
static int
CENNAM
static int
CENOFF
static long
CENSIG
static int
CENSIZ
static int
CENTIM
static int
CENVEM
static int
CENVER
static int
ENDCOM
static int
ENDHDR
static int
ENDOFF
static long
ENDSIG
static int
ENDSIZ
static int
ENDSUB
static int
ENDTOT
static int
EXTCRC
static int
EXTHDR
static int
EXTLEN
static long
EXTSIG
static int
EXTSIZ
static int
LOCCRC
static int
LOCEXT
static int
LOCFLG
static int
LOCHDR
static int
LOCHOW
static int
LOCLEN
static int
LOCNAM
static long
LOCSIG
static int
LOCSIZ
static int
LOCTIM
static int
LOCVER
-
Fields inherited from class java.io.FilterInputStream
in
-
Fields inherited from class java.util.zip.InflaterInputStream
buf, inf, len
-
-
构造方法摘要
构造方法 Constructor 描述 JarInputStream(InputStream in)
创建一个新的JarInputStream
并读取可选的清单。JarInputStream(InputStream in, boolean verify)
创建一个新的JarInputStream
并读取可选的清单。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 protected ZipEntry
createZipEntry(String name)
为指定的JAR文件条目名称创建一个新的JarEntry
(ZipEntry
)。Manifest
getManifest()
返回此JAR文件的null
如果没有,则返回Manifest
。ZipEntry
getNextEntry()
读取下一个ZIP文件条目,并将流定位在条目数据的开头。JarEntry
getNextJarEntry()
读取下一个JAR文件条目,并将流定位在条目数据的开头。int
read(byte[] b, int off, int len)
从当前的JAR文件条目读入一个字节数组。-
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
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from class java.util.zip.ZipInputStream
available, close, closeEntry, skip
-
-
-
-
字段详细信息
-
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
-
-
构造方法详细信息
-
JarInputStream
public JarInputStream(InputStream in) throws IOException
创建一个新的JarInputStream
并读取可选的清单。 如果存在清单,还尝试验证JarInputStream是否已经签名的签名。- 参数
-
in
- 实际的输入流 - 异常
-
IOException
- 如果发生I / O错误
-
JarInputStream
public JarInputStream(InputStream in, boolean verify) throws IOException
创建一个新的JarInputStream
并读取可选的清单。 如果清单存在并且验证是真的,那么如果JarInputStream被签名,也尝试验证签名。- 参数
-
in
- 实际的输入流 -
verify
- 是否验证JarInputStream是否被签名。 - 异常
-
IOException
- 如果发生I / O错误
-
-
方法详细信息
-
getManifest
public Manifest getManifest()
返回此JAR文件的null
如果没有,则返回Manifest
。- 结果
-
该
Manifest
此JAR文件,或者null
如果没有。
-
getNextEntry
public ZipEntry getNextEntry() throws IOException
读取下一个ZIP文件条目,并将流定位在条目数据的开头。 如果已启用验证,则在为下一个条目定位流时检测到任何无效的签名将导致异常。- 重写:
-
getNextEntry
在ZipInputStream
- 结果
- 下一个ZIP文件条目,如果没有更多条目,则为null
- 异常
-
ZipException
- 如果发生ZIP文件错误 -
IOException
- 如果发生I / O错误 -
SecurityException
- 如果任何jar文件条目未正确签名。
-
getNextJarEntry
public JarEntry getNextJarEntry() throws IOException
读取下一个JAR文件条目,并将流定位在条目数据的开头。 如果已启用验证,则在为下一个条目定位流时检测到任何无效的签名将导致异常。- 结果
- 下一个JAR文件条目,如果没有更多条目,则为null
- 异常
-
ZipException
- 如果发生ZIP文件错误 -
IOException
- 如果发生I / O错误 -
SecurityException
- 如果任何jar文件条目未正确签名。
-
read
public int read(byte[] b, int off, int len) throws IOException
从当前的JAR文件条目读入一个字节数组。 如果len
不为零,则该方法将阻塞,直到某些输入可用; 否则,不会读取字节,并返回0
。 如果已启用验证,则在到达条目结束前的某个时刻将会报告当前条目中的任何无效签名。- 重写:
-
read
在ZipInputStream
- 参数
-
b
- 读取数据的缓冲区 -
off
- 目标数组b
的起始偏移量 -
len
- 要读取的最大字节数 - 结果
- 读取的实际字节数,如果达到条目结束,则为-1
- 异常
-
NullPointerException
- 如果b
是null
。 -
IndexOutOfBoundsException
- 如果off
为负,则len
为负数,或len
大于b.length - off
-
ZipException
- 如果发生ZIP文件错误 -
IOException
- 如果发生I / O错误 -
SecurityException
- 如果任何jar文件条目未正确签名。 - 另请参见:
-
FilterInputStream.in
-
createZipEntry
protected ZipEntry createZipEntry(String name)
为指定的JAR文件条目名称创建一个新的JarEntry
(ZipEntry
)。 指定的JAR文件条目名称的清单属性将被复制到新的JarEntry
。- 重写:
-
createZipEntry
在ZipInputStream
- 参数
-
name
- JAR / ZIP文件条目的名称 - 结果
-
刚刚创建的
JarEntry
对象
-
-