簡體   English   中英

從流中讀取JarEntry

[英]Reading JarEntry from stream

我有jar作為輸入流。 我想直接從流中讀取JarEntry。 我沒有jar文件,也不想創建臨時的jar文件。

我試過這樣的代碼:

    JarInputStream jis = new JarInputStream(in);
    JarEntry je = null;

    while ((je = jis.getNextJarEntry()) != null)
    {
        byte[] classbytes = new byte[(int) je.getSize()];
        System.out.println("size of array: " + classbytes.length);
        jis.read(classbytes, 0, classbytes.length);
    }

此代碼的問題:je.getSize()返回-1(這意味着jarEntry大小未知)。

1)也許您知道如何解決此問題?

2)也許您知道為什么jarEntry大小未知? (我使用Eclipse File> Export> Jar File來創建它)

您可以遍歷read方法並讀入固定大小的數組,將剛剛讀取的字節附加到最終存儲中。

另外,您可以使用其他類型的inputStream傳遞到JarInputStream中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM