Java资源作为文件

Java中是否有一种方法可以在通过类加载器从jar检索的资源上构造File实例?

我的应用程序使用jar(默认)或运行时指定的文件系统目录(用户输入)中的某些文件。我正在寻找一种一致的方式

a)将这些文件作为流加载

b)分别列出用户定义的目录或jar中的目录中的文件

编辑:显然,理想的方法是完全远离java.io.File。有没有办法从类路径加载目录并列出其内容(包含在其中的文件/实体)?

回答:

ClassLoader.getResourceAsStream并且Class.getResourceAsStream绝对是加载资源数据的方法。但是,我不相信有任何“列出”类路径元素内容的方法。

在某些情况下,这可能根本是不可能的-例如,a ClassLoader 可以根据要求的资源名称即时生成数据。如果看一下ClassLoaderAPI(基本上是类路径机制的工作原理),你会发现没有任何事情可以做。

如果你知道实际上有一个jar文件,可以将其加载ZipInputStream以查找可用的文件。这将意味着你将为目录和jar文件使用不同的代码。

如果首先分别创建文件,则一种替代方法是包括一种包含可用资源列表的清单文件。将其捆绑在jar文件中或将其作为文件包含在文件系统中,并在为用户提供选择资源之前加载它。

以上是 Java资源作为文件 的全部内容, 来源链接: utcz.com/qa/405573.html

回到顶部