gpt4 book ai didi

java - 从 jar 中获取文本并卡住

转载 作者:行者123 更新时间:2023-11-30 08:18:51 25 4
gpt4 key购买 nike

我目前开始编写一个可以加载不同游戏的棋盘游戏 Playground 。我将这些游戏存储在名为 config.txt 的文件中,但访问它时遇到问题。首先,我从我最喜欢的文件方法开始:

String fileAddress = "./resources/config.txt";
fis = new FileInputStream(fileAddress);
reader = new BufferedReader(new InputStreamReader(fis));

但是当我构建 .jar 文件时,它停止工作。出于显而易见的原因。所以我发现自己环顾四周,发现了使用 getResourceAsStream(String s) 方法的建议。所以我将代码更改为以下方式:

String fileAddress = "./resources/config.txt";
InputStream toReturn=null;
toReturn = this.getClass().getClassLoader().getResourceAsStream(fileAddress);

但是我被困住了。无论我如何调整 fileAddress (尝试过 ./config.txt ./resources/config.txt ./resources/boardgames/config.txt 和 ./resources/boardgames/config.txt)并使用或省略 getClassLoader(), toReturn 的结果总是等于 NULL,并很快抛出 NullPointerException。

所需文件的位置如下。由于我没有足够的声誉,我将不得不对文件层次结构进行 ASCII 艺术处理。 config.txt 都是有效目标。

在文件系统上:

Boardgames
src
cache
classes
resources
boardgames
config.txt
imgs
config.txt

Jar 文件内部

BoardGames.jar
boardgames
<class files>
config.txt
imgs
META-INF
config.txt

因此,我需要修复代码的帮助,以便它能够正确读取文件。如果您可以包含如何从位于子文件夹 imgs 中的 .png 文件获取 ImageIcon 的提示,因为我认为一旦我通过 config.txt 通过初始化阶段,我就会遇到类似的问题。

感谢您的帮助。

最佳答案

感谢@EJP 和@immibis 的所有帮助。

this.getClass().getResourceAsStream("boardgames/config.txt");

这是最终让我运行的解决方案

关于java - 从 jar 中获取文本并卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29268508/

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