Получить файл или объект URI для файла внутри архива с помощью Java?

StackOverflow https://stackoverflow.com/questions/2049659

  •  20-09-2019
  •  | 
  •  

Вопрос

возможно ли получить файл или объект 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 для этого класса объясняет, как его следует использовать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top