czy można uzyskać obiekt File lub URI dla pliku wewnątrz archiwum z Javą? (archiwum zip lub jar)Pobierz obiekt File lub URI dla pliku wewnątrz archiwum z Javą?
Dzięki Hemeroc.
czy można uzyskać obiekt File lub URI dla pliku wewnątrz archiwum z Javą? (archiwum zip lub jar)Pobierz obiekt File lub URI dla pliku wewnątrz archiwum z Javą?
Dzięki Hemeroc.
Protokół jar:
jest sposobem na zbudowanie URI do zasobu w archiwum JAR:
jar:http://www.example.com/bar/baz.jar!/path/to/file
Zobacz docs API dla JarURLConnection: http://java.sun.com/javase/6/docs/api/java/net/JarURLConnection.html
między jar:
i !/
może być dowolny adres URL , w tym adres URL file:
.
Rzeczywiste dane pliku, patrz ZipFile#getInputStream(ZipEntry). Javadocs dla tej klasy wyjaśniają, jak to jest być użytym.
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;
}
dla metody inputStreamToFile, google "Java InputStream do pliku", chociaż może być zadowolony z obiektu InputStream też, zamiast obiektu File :)