从jar子里取出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  config.txt imgs META-INF config.txt 

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

谢谢你的帮助。

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

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

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