2011-08-15 71 views
0

我怎麼知道輸入流是否是JAR文件?如何檢測JAR文件?

我可以通過使用檢測JAR文件:

try { 
    JarFile jar = new JarFile("file"); 
} catch(ZipException e) { 
    // not a jar file 
    ... 
} 

但我應該怎麼做,如果我只有InputStream的?我需要將它寫入文件嗎?
任何優雅的方式?

+0

看一看[TrueZip(http://truezip.java.net)它爲各種壓縮/歸檔文件格式提供了VFS。 –

+0

從文件格式方面來看,jar文件只是一個名稱改變,固定文件名編碼(UTF-8)和一些元數據文件的zip文件。因此,使用任何你用來檢測壓縮文件。 –

回答

1

http://download.oracle.com/javase/1.4.2/docs/api/java/util/jar/JarInputStream.html#JarInputStream(java.io.InputStream

try { 
    JarInputStream jar = new JarInputStream(inputStream); 
} catch(Exception e) { 
    // not a jar file 
    ... 
} 
+0

您可能想要提供更新的JavaDoc鏈接。 Java 1.4.2這幾天是古老的歷史。 –

+0

這一個不起作用。您可以嘗試提供一個txt文件並查看結果。 – willpowerforever

+0

抱歉@willpowerforever,我沒有嘗試它,只是想指向類 – bpgergo