World Loader 不会将 world1.txt 作为字符串加载
World Loader wont load world1.txt as an String
我的 Java 游戏有问题。当我想导出它时,它不会加载世界。我会得到一个 "Thread - 0" 异常。这是我的功能:
private void loadWorld(String path){
String file = World.class.getResourceAsStream(path).toString();
file.toString();
String[] tokens = file.split("\s+");
width = Utils.parseInt(tokens[0]);
height = Utils.parseInt(tokens[1]);
spawnX = Utils.parseInt(tokens[2]);
spawnY = Utils.parseInt(tokens[3]);
tiles = new int[width][height];
for(int y = 0;y < height;y++){
for(int x = 0;x < width;x++){
tiles[x][y] = Utils.parseInt(tokens[(x + y * width) + 4]);
}
}
}
它需要作为字符串加载,因为我需要将它的每个字符串拆分成一个数组。管理此问题的正确方法是什么?
编辑:
这是堆栈跟踪:
C:\Users\User>java -jar C:\Users\User\Desktop\Game.jar
Exception in thread "Thread-0" java.lang.NullPointerException
at dev.codenmore.tilegame.worlds.World.loadWorld(World.java:76)
at dev.codenmore.tilegame.worlds.World.<init>(World.java:36)
at dev.codenmore.tilegame.states.GameState.<init>(GameState.java:14)
at dev.codenmore.tilegame.Game.init(Game.java:61)
at dev.codenmore.tilegame.Game.run(Game.java:94)
at java.lang.Thread.run(Unknown Source)
我做到了!我使用以下代码读取文件:
InputStream 流 = World.class.getResourceAsStream("/worlds/world1.txt");
也许是 Buggy 但至少它有效!
总是从调试器开始,我的朋友。我会弹出调试器以查看此处放置的路径 World.class.getResourceAsStream(path)
空指针异常会告诉您您正在向您的函数传递一个它无法处理的空值。在调用堆栈的更下方,您有
at dev.codenmore.tilegame.worlds.World.loadWorld(World.java:76)
这基本上告诉您空指针异常发生的位置。你的错误堆栈跟踪是这里问题的死因。
祝你项目顺利
我的 Java 游戏有问题。当我想导出它时,它不会加载世界。我会得到一个 "Thread - 0" 异常。这是我的功能:
private void loadWorld(String path){
String file = World.class.getResourceAsStream(path).toString();
file.toString();
String[] tokens = file.split("\s+");
width = Utils.parseInt(tokens[0]);
height = Utils.parseInt(tokens[1]);
spawnX = Utils.parseInt(tokens[2]);
spawnY = Utils.parseInt(tokens[3]);
tiles = new int[width][height];
for(int y = 0;y < height;y++){
for(int x = 0;x < width;x++){
tiles[x][y] = Utils.parseInt(tokens[(x + y * width) + 4]);
}
}
}
它需要作为字符串加载,因为我需要将它的每个字符串拆分成一个数组。管理此问题的正确方法是什么?
编辑: 这是堆栈跟踪:
C:\Users\User>java -jar C:\Users\User\Desktop\Game.jar
Exception in thread "Thread-0" java.lang.NullPointerException
at dev.codenmore.tilegame.worlds.World.loadWorld(World.java:76)
at dev.codenmore.tilegame.worlds.World.<init>(World.java:36)
at dev.codenmore.tilegame.states.GameState.<init>(GameState.java:14)
at dev.codenmore.tilegame.Game.init(Game.java:61)
at dev.codenmore.tilegame.Game.run(Game.java:94)
at java.lang.Thread.run(Unknown Source)
我做到了!我使用以下代码读取文件: InputStream 流 = World.class.getResourceAsStream("/worlds/world1.txt"); 也许是 Buggy 但至少它有效!
总是从调试器开始,我的朋友。我会弹出调试器以查看此处放置的路径 World.class.getResourceAsStream(path)
空指针异常会告诉您您正在向您的函数传递一个它无法处理的空值。在调用堆栈的更下方,您有
at dev.codenmore.tilegame.worlds.World.loadWorld(World.java:76)
这基本上告诉您空指针异常发生的位置。你的错误堆栈跟踪是这里问题的死因。
祝你项目顺利