当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java Java.util.jar.JarInputStream用法及代码示例


JarInputStream 类用于从任何输入流读取 JAR 文件的内容。它扩展了 java.util.zip.ZipInputStream 类,支持读取可选的 Manifest 条目。 Manifest 可用于存储有关 JAR 文件及其条目的元信息。
构造函数

  • JarInputStream(输入流中):创建新的 JarInputStream 并读取可选清单。
  • JarInputStream(InputStream in, 布尔验证):创建新的 JarInputStream 并读取可选清单。

方法:

  • protected ZipEntry createZipEntry(字符串名称):为指定的 JAR 文件条目名称创建新的 JarEntry (ZipEntry)。指定的 JAR 文件条目名称的清单属性将复制到新的 JarEntry。
  • 清单getManifest():返回此 JAR 文件的清单,如果没有,则返回 null。
    Syntax :public Manifest getManifest()
    返回:
    the Manifest for this JAR file, or null if none.
  • ZipEntry getNextEntry():读取下一个 ZIP 文件条目并将流定位在条目数据的开头。如果已启用验证,则在定位下一个条目的流时检测到的任何无效签名都将导致异常。
    Syntax :public ZipEntry getNextEntry()
                          throws IOException
    Overrides:
    getNextEntry in class ZipInputStream
    返回:
    the next ZIP file entry, or null if there are no more entries
    Throws:
    ZipException 
    IOException 
    SecurityException
  • JarEntry getNextJarEntry():读取下一个 JAR 文件条目并将流定位在条目数据的开头。如果已启用验证,则在定位下一个条目的流时检测到的任何无效签名都将导致异常。
    Syntax :public JarEntry getNextJarEntry()
                             throws IOException
    返回:
    the next JAR file entry, or null if there are no more entries
    Throws:
    ZipException 
    IOException 
    SecurityException
  • int 读取(字节[] b,int 关闭,int len):从当前 JAR 文件条目读取到字节数组中。如果 len 不为零,则该方法将阻塞,直到某些输入可用为止;否则,不会读取任何字节并返回 0。如果已启用验证,则在到达条目末尾之前的某个时间点将报告当前条目上的任何无效签名。
    Syntax :public int read(byte[] b,
           int off,
           int len)
             throws IOException
    Overrides:
    read in class ZipInputStream
    参数:
    b - the buffer into which the data is read
    off - the start offset in the destination array b
    len - the maximum number of bytes to read
    返回:
    the actual number of bytes read, or -1 if the end of the entry is reached
    Throws:
    NullPointerException 
    IndexOutOfBoundsException 
    ZipException 
    IOException 
    SecurityException 

//Java program demonstrating JarInputStream methods 
  
import java.io.FileInputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.util.Arrays; 
import java.util.jar.JarInputStream; 
import java.util.zip.ZipEntry; 
  
class JarInputStreamDemo extends JarInputStream 
{ 
  
    public JarInputStreamDemo(InputStream in) throws IOException  
    { 
        super(in); 
    } 
    public static void main(String[] args) throws IOException 
    { 
        FileInputStream is = new FileInputStream("codechecker.jar"); 
        JarInputStream jis = new JarInputStream(is); 
        JarInputStreamDemo obj=new JarInputStreamDemo(jis); 
  
        //illustrating createZipEntry() method 
        ZipEntry ze1=obj.createZipEntry("ZipEntry"); 
        System.out.println(ze1.getName()); 
  
        //illustrating getNextEntry() method 
        ZipEntry ze=jis.getNextEntry(); 
        System.out.println(ze.getName()); 
  
        //illustrating getManifest(); 
        System.out.println(jis.getManifest()); 
  
        // Reading from the current JAR file entry 
        // into an array of 10 bytes 
        byte b[] = new byte[10]; 
  
        //illustrating getNextJarEntry() 
        //illustrating read(byte b[],int off,int length) 
        while(jis.getNextJarEntry()!= null) 
            jis.read(b); 
        System.out.print(Arrays.toString(b)); 
  
        //closing the stream 
        jis.close(); 
    } 
} 

输出:

Zipentry
Attention-64.png
java.util.jar.Manifest@513ee0c5
[-119, 80, 78, 71, 13, 10, 26, 10, 0, 0]


相关用法


注:本文由纯净天空筛选整理自佚名大神的英文原创作品 Java.util.jar.JarInputStream class in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。