¿es posible obtener un objeto de archivo o URI para un archivo dentro de un archivo con Java? (archivo zip o jar)¿Obtiene un objeto de archivo o URI para un archivo dentro de un archivo con Java?
Gracias Hemeroc.
¿es posible obtener un objeto de archivo o URI para un archivo dentro de un archivo con Java? (archivo zip o jar)¿Obtiene un objeto de archivo o URI para un archivo dentro de un archivo con Java?
Gracias Hemeroc.
El protocolo jar:
es una manera de construir un URI a un recurso en un archivo JAR:
jar:http://www.example.com/bar/baz.jar!/path/to/file
Ver los documentos de la API para JarURLConnection: http://java.sun.com/javase/6/docs/api/java/net/JarURLConnection.html
Entre el jar:
y !/
puede ser cualquier URL , incluida una URL file:
.
Para obtener los datos de archivo reales, consulte ZipFile#getInputStream(ZipEntry). Los javadocs de esa clase explican cómo se usará.
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;
}
para el método inputStreamToFile, google "flujoEntrada java para presentar", aunque es posible ser feliz con un objeto InputStream también, en lugar de un objeto File :)