从 jar 中获取文本并卡住
Getting txt from jar & stucked
我目前开始编写一个可以加载不同游戏的棋盘游戏游乐场。我将这些游戏存储在名为 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.[=14= 完成初始化阶段,我将 运行 陷入类似的问题]
感谢您的帮助。
感谢@EJP 和@immibis 的所有帮助。
this.getClass().getResourceAsStream("boardgames/config.txt");
是最终让我满意的解决方案 运行
我目前开始编写一个可以加载不同游戏的棋盘游戏游乐场。我将这些游戏存储在名为 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.[=14= 完成初始化阶段,我将 运行 陷入类似的问题]
感谢您的帮助。
感谢@EJP 和@immibis 的所有帮助。
this.getClass().getResourceAsStream("boardgames/config.txt");
是最终让我满意的解决方案 运行