Get a File or URI object for a file inside an archive with Java?

前端 未结 3 1636
失恋的感觉
失恋的感觉 2020-12-31 10:56

is it possible to get a File or URI object for a file inside an archive with Java? (zip or jar archive)

Thanks Hemeroc.

相关标签:
3条回答
  • 2020-12-31 11:28

    The jar: protocol is a way to build a URI to a resource in a JAR archive:

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

    See the API docs for JarURLConnection: http://java.sun.com/javase/6/docs/api/java/net/JarURLConnection.html

    Between the jar: and !/ can be any URL, including a file: URL.

    0 讨论(0)
  • 2020-12-31 11:36

    For the actual file data, see ZipFile#getInputStream(ZipEntry). The javadocs for that class explain how it is to be used.

    0 讨论(0)
  • 2020-12-31 11:38
    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;
    }
    

    for the inputStreamToFile method, google "java inputStream to file", although you might be happy with an InputStream object also, instead of a File object :)

    0 讨论(0)
提交回复
热议问题