2011-08-15 12 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ファイルです。したがって、あなたが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