从jar文件中读取多个资源

时间:2012-12-14 15:09:53

标签: url jar

我的jar文件包含两个文件夹,每个文件夹都有一堆文件(可能还有一些其他文件在根目录中):

myjar.jar
 > sub1
    > file1.txt
    > file2.txt
    > file3.txt
    > ...
 > sub2
    > file1.txt
    > file2.txt
    > file3.txt
    > ...
 > otherfile.txt

我有另一个依赖于myjar.jar的项目,它包含一个需要读取所有资源/文本文件的应用程序,并且每个资源都将它们转换为字符串。所以我想做

URL url = this.class.getClassLoader().getResource("sub1");
// Somehow iterate all sub urls and convert to string

这样做有什么好的建议吗?一种方法可能是:

String scheme = url.getProtocol();
if (!"jar".equals(scheme)) {
  // Hm who if we simply want to run from the workspace???
  throw new IllegalArgumentException("Unsupported scheme: " + scheme);
}
JarURLConnection con = (JarURLConnection) url.openConnection();
JarFile archive = con.getJarFile();
Enumeration<JarEntry> entries = archive.entries();
while (entries.hasMoreElements()) {
  JarEntry entry = entries.nextElement();
  if (entry.getName().startsWith(folder)) {
    System.out.println(entry.getName());
  }
}

但我想避免使用这种低级代码。

0 个答案:

没有答案