Как определить файл JAR? - PullRequest
0 голосов
/ 16 августа 2011

Как я могу узнать, является ли входной поток файлом JAR?

Я могу определить файл JAR с помощью:

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

Но как мне поступить, если у меня есть только входной поток?Нужно ли записывать его в файл?
Каким-либо элегантным способом?

Ответы [ 2 ]

1 голос
/ 16 августа 2011

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 голосов
/ 16 августа 2011

Если вы хотите выполнить интеллектуальную предварительную фильтрацию, вы можете найти байт подписи локального заголовка файла: 0x04034b50

...