Получить файл или объект URI для файла внутри архива с помощью Java?
Вопрос
возможно ли получить файл или объект URI для файла внутри архива с помощью Java?(zip-или jar-архив)
Спасибо, Хемерок.
Решение
Тот самый jar:
протокол - это способ создания URI для ресурса в JAR-архиве:
jar:http://www.example.com/bar/baz.jar!/path/to/file
Смотрите документы API для JarURLConnection: http://java.sun.com/javase/6/docs/api/java/net/JarURLConnection.html
Между jar:
и !/
может быть любым URL-адресом, включая file:
URL-АДРЕС.
Другие советы
public List<File> getFilesInJar(String jarName){
List<File> result = new ArrayList<File>();
File jarFile = new File(jarName);
JarInputStream jarFile = new JarInputStream(new FileInputStream(jarFile));
JarEntry jarEntry;
while ((jarEntry = jarFile.getNextJarEntry()) != null) {
result.add(inputStreamToFile(jarFile.getInputStream(jarEntry)));
}
return result;
}
для метода inputStreamToFile введите в Google «java inputStream в файл», хотя вас может также устроить объект InputStream вместо объекта File :)
Фактические данные файла см. ZipFile#getInputStream(ZipEntry).Javadocs для этого класса объясняет, как его следует использовать.
Не связан с StackOverflow