gpt4 book ai didi

导出为 jar 后,Java 找不到文件

转载 作者:行者123 更新时间:2023-11-30 07:20:53 25 4
gpt4 key购买 nike

为了在我的游戏中加载世界,我的程序读取文本文件。在 Eclipse 中一切正常,但导出为可运行的 jar 后,它无法再找到文本文件。

这调用函数从文本文件中读取。

LevelHandler.loadLevel("res/levels/level.txt");

这就是函数本身

    public static void loadLevel(String file){
String level = LevelLoader.loadFileAsString(file);

这是 loadFileAsString() 函数

public static String loadFileAsString(String file){
StringBuilder builder = new StringBuilder();
try {
@SuppressWarnings("resource")
BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
String line;
while((line = bufferedReader.readLine()) != null){
builder.append(line + "\n");
}
} catch (IOException e) {
e.printStackTrace();
}
return builder.toString();
}

此外,可能值得注意的是,res 文件夹永远不会出现在 jar 中,但里面的级别文件夹却出现。也许这就是导致无法找到该文件的原因。我尝试用这个导出,但出现了同样的错误。

LevelHandler.loadLevel("levels/level.txt");

最佳答案

您正在向文件系统询问导出的 jar 中的某些内容。

如果levels文件夹位于导出的jar文件中,则应使用ClassClassLoader提供的getResourceAsStream > 阅读它们。

例如:

InputStream in = LevelLoader.class.getResourceAsStream("/levels/level.txt");

然后在顶部构建一个 BufferedReader:

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(in));

关于导出为 jar 后,Java 找不到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37603512/

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