为了账号安全,请及时绑定邮箱和手机立即绑定

Java资源作为文件

Java资源作为文件

喵喵时光机 2019-07-20 10:12:06
Java资源作为文件在Java中是否有一种方法可以在通过类加载器从JAR检索的资源上构造一个File实例?我的应用程序使用JAR(默认)或运行时指定的文件系统目录(用户输入)中的一些文件。我在寻找一种一致的方法(A)将这些文件作为流加载(B)分别列出用户定义目录中的文件或jar中的目录。编辑:显然,理想的方法是完全远离java.io.File。是否有方法从类路径加载目录并列出其内容(包含在其中的文件/实体)?
查看完整描述

3 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

ClassLoader.getResourceAsStreamClass.getResourceAsStream绝对是加载资源数据的方法。但是,我不认为有任何方法可以“列出”类路径元素的内容。

在某些情况下,这可能是不可能的-例如,ClassLoader 根据请求的资源名称动态生成数据。如果你看看ClassLoaderAPI(基本上就是类路径机制的工作原理)您将看到没有什么可以做您想做的事情。

如果你知道你真的有一个JAR文件,你可以用ZipInputStream找出可用的东西。这意味着您将对目录和JAR文件有不同的代码。

如果文件是单独创建的,另一种方法是包含可用资源列表的清单文件。将其打包到JAR文件中,或者将其作为文件系统包含在文件系统中,并在为用户提供资源选择之前加载它。


查看完整回答
反对 回复 2019-07-20
?
九州编程

TA贡献1785条经验 获得超4个赞

我也遇到了同样的问题,能够使用以下方法:


// Load the directory as a resource

URL dir_url = ClassLoader.getSystemResource(dir_path);

// Turn the resource into a File object

File dir = new File(dir_url.toURI());

// List the directory

String files = dir.list()


查看完整回答
反对 回复 2019-07-20
  • 3 回答
  • 0 关注
  • 429 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信