当涉及到来自例如的输入源时,是否有一个很好的java库可以透明地处理资源的I / O. java projects / folders或jar archives?
我希望在I:
时使用相同的代码来读取应用程序中的资源通常我会这样做:
URL resource = this.getClass().getClassLoader().getResource("someResource.ext");
假设资源在类路径上,从源和二进制文件都可以正常工作。但在某些项目中,只有子文件夹位于类路径而不是其内容(以避免必须将所有文件指定为单独的资源):
project
src
resources
someResource.txt
subFolder
-> resA.txt
-> resB.txt
-> resC.txt
....
在这种情况下,我需要做一些像这样的低级spagetti:
http://www.java-gaming.org/topics/how-to-check-if-a-url-is-a-directory/21435/view.html
我看过一个apache.commons-io,但它并不是我需要的东西。有关处理src和bin的嵌套文件夹/资源的其他库的任何建议吗?
编辑:
如下所述,我正在尝试使用此处所述的URL协议处理程序:
但我不确定我完全理解它。在一个项目中,我依赖于一个包含文件夹的jar文件:
myjar.jar
myresources
> fileA.txt
> fileB.txt
> fileC.txt
在我的申请中,我做了:
URL url = this.getClass().getClassLoader().getResource("myresources");
System.out.println(url.getPath());
Handler.install();
URLConnection con = new DataConnection(url);
try {
inputStream = con.getInputStream();
} catch (IOException e) {
e.printStackTrace();
}
复制DataConnection和Handler的位置:
但我看不出这对我在'myresources'文件夹中获取资源有何帮助。我显然没有以正确的方式使用它。