2010-01-12 1 views
11

Java를 사용하여 아카이브 내에있는 파일에 대해 File 또는 URI 객체를 가져올 수 있습니까? (zip 또는 jar 아카이브)Java가있는 아카이브 내의 파일에 대한 파일 또는 URI 객체를 가져 옵니까?

감사합니다. Hemeroc. 어떤 URL이 될 수 jar:!/ 사이 http://java.sun.com/javase/6/docs/api/java/net/JarURLConnection.html

:

jar:http://www.example.com/bar/baz.jar!/path/to/file 

은 API JarURLConnection를위한 문서를 참조하십시오 :

답변

12

jar: 프로토콜은 JAR 아카이브의 리소스에 대한 URI를 구축하는 방법입니다 URL은 file:입니다.

1

실제 파일 데이터는 ZipFile#getInputStream(ZipEntry)을 참조하십시오. 이 클래스의 javadoc은 어떻게 사용되는지를 설명합니다. inputStreamToFile 방법은 또한 InputStream 객체에 만족하실 수도 있지만, 구글 대신 File 객체 :

의, "자바 inputStream에이 파일에"에 대한
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; 
} 

관련 문제