gpt4 book ai didi

Java 读取可运行 JAR 文件中的文本文件错误

转载 作者:行者123 更新时间:2023-12-02 06:10:39 25 4
gpt4 key购买 nike

我必须为学校做一个项目;游戏而已。我从文本文件加载 map 。目前我使用扫描仪来完成此操作,但如果不将 res 文件放在 JAR 文件旁边,我就无法使其在可运行 JAR 文件中工作。我想获取里面的文本文件;它可以与 BufferedImages 一起使用,但文本文件不起作用。我有这个代码:

public String ReadTextFile(String path) throws IOException {
String HoldsText= null;

FileReader fr = new FileReader(getClass().getResource(path).toString());
BufferedReader br = new BufferedReader(fr);

while((HoldsText = br.readLine())!= null){
System.out.println(HoldsText);
}

return HoldsText;
}

路径=“res/Maps/Map2.txt”

错误:

java.lang.NullPointerException
at aMAZEing.TextManager.ReadTextFile(TextManager.java:22)
at aMAZEing.Map.openFile(Map.java:89)
at aMAZEing.Map.<init>(Map.java:31)
at aMAZEing.Board.<init>(Board.java:50)
at aMAZEing.Maze.<init>(Maze.java:24)
at aMAZEing.Maze.main(Maze.java:15)

文件结构:http://speedcap.net/sharing/screen.php?id=files/a9/77/a977e8b487f21e67db941a96087561cd.png

但这似乎不起作用。我进行了很多研究,但找不到任何对我有用的东西。我只需要字符串中的整个文本文件,其余的很容易使用子字符串等。

编辑!:解决这个问题的方法是我的路径中有资源,因此它不起作用。我删除了资源并获得了“/Maps/Map2.txt”作为路径,现在文件加载并且我的 map 再次显示。

最佳答案

public static String ReadTextFile(String path) throws IOException{
String HoldsText= null;

InputStream is = getClass().getResourceAsStream(path);
InputStreamReader fr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(fr);

StringBuilder sb = new StringBuilder();
while((HoldsText = br.readLine())!= null){
sb.append(HoldsText)
.append("\n");
}

return sb.toString();
}

您需要附加这些行并使用 InputStreamReader 而不是 FileReader

关于Java 读取可运行 JAR 文件中的文本文件错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21922634/

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