gpt4 book ai didi

java - 打开文件;首先尝试文件系统,然后尝试 JAR

转载 作者:行者123 更新时间:2023-12-02 18:17:41 25 4
gpt4 key购买 nike

我试图让我的应用程序透明地加载资源(二进制文件):

如果当前目录下存在该文件,则打开它。
如果没有,请尝试查找当前的 JAR 文件(如果适用)。
如果没有,请尝试查找其他 JAR 文件。 (这是可选的,我不介意明确指定哪些 JAR 文件。)

到目前为止,我知道 File 可以打开本地文件,ClassLoader 可以用于获取 JAR 内容的 getResource*

是否有一个类将两者结合起来?如果没有,我该怎么自己写呢?我应该编写一个也检查本地文件系统的ClassLoader吗?使用文件? (我对 Java 很不熟悉,甚至不知道什么是好的返回类型。InputStream?)

谢谢

附注我所说的"file"是指“路径”,例如“数据/texture1.png”。

最佳答案

执行#1 和#3 非常简单。执行 #2(仅查看当前 JAR)要困难得多,因为它需要您弄清楚您使用的 JAR

如果您想首先检查文件系统,否则从类路径加载,则类似于:

public java.io.InputStream loadByName(String name) {
java.io.File f = new java.io.File(name);
if (f.isFile()) {
return new FileInputStream(f);
} else {
return getClass().getResource(name);
}
}

如果您想首先从同一个 JAR 文件加载,您需要弄清楚它在哪里。查看Determine which JAR file a class is from有关确定要从中加载资源的 JAR 文件的更多信息。

关于java - 打开文件;首先尝试文件系统,然后尝试 JAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3823746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com