Получить файл или объект URI для файла внутри архива с Java? Можно ли получить объект File или URI для файла внутри архива с Java? (архив zip или jar) Спасибо Хемероку. Ответ 1 Протокол 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, включая URL file:. Ответ 2 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 to file", хотя вы можете быть довольны также объектом InputStream, а не объектом File:). Ответ 3 Для фактических данных файла см. ZipFile # getInputStream (ZipEntry). Javadocs для этого класса объясняют, как его использовать.
Ответ 1 Протокол 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, включая URL file:.
Ответ 2 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 to file", хотя вы можете быть довольны также объектом InputStream, а не объектом File:).
Ответ 3 Для фактических данных файла см. ZipFile # getInputStream (ZipEntry). Javadocs для этого класса объясняют, как его использовать.