java - 未触及代码块
问题描述
我正在用 Java 构建一个小型应用程序,小型游戏机制,但没什么大不了的。我有一个类,目的是从文件中获取数据。但是,当我声明要从中读取两个类时,程序会忽略所有内容并继续。结果,当我尝试访问相应的列表时,它给了我空指针异常。获取数据的方法代码如下:
public void getData(int l, player tmp, level le) {
String[] dataPlayer;
String[] dataLevel;
try {
//FileReader f = new FileReader(this.levelPath.concat(Integer.toString(l)));
File f = new File(this.levelPath.concat(Integer.toString(l)));
BufferedReader buff = new BufferedReader(new FileReader(f));
System.out.println("Reached");
boolean eof = false;
while (!eof) {
String b = buff.readLine();
if (b == null)
eof = true;
else {
if (b.contains("player")) {
dataPlayer = b.split("-");
for (int i = 0; i < dataPlayer.length; i++) {
if (i == 0)
continue;
items it = new items(dataPlayer[i]);
tmp.setInventory1(it);
}
}else if (b.contains("level")) {
dataLevel = b.split("-");
for (int i = 0; i < dataLevel.length; i++) {
if (i == 0)
continue;
items it = new items(dataLevel[i]);
le.setSpecific(it);
}
}
}
}
}catch (IOException i) {
i.getMessage();
}
}
文件“levelData1”的文件内容:
player-hat
player-flashlight
level-flower
level-rock
player-adz
这个特殊问题的问题是路径,它需要像 /home/toomlg4u/IdeaProjects/javaProject/src/Data/levelData 这样的绝对值。
解决方案
你在 try/catch 中做了很多可能不会抛出 IOException 的事情。如果您遇到任何其他异常,则不会被捕获。根据您有哪些其他异常处理,这可能会导致奇怪的行为。对于调试,您可以捕获所有异常,并查看您是否得到了其他东西。
推荐阅读
- windows - “svn ls....”命令是否存在 Windows 等效项?
- reactjs - 复制粘贴 React.js 应用程序时我需要更改什么?
- mysql - 使用节点JS将带有数组的json对象插入到mysql表中
- html - 如何在已对齐页面中心的图像下放置文本?
- video - 如何比较 MPEG-7 视频签名签名
- javascript - React js - 表达:res.send Vs res.render 错误
- c# - .NET Core 3.1 基于角色的授权失败,出现 403 异常
- sql - 如何从一行中选择两个列值中的一个,其中一个是您的查询值,另一个是您在 SQL 中想要的值?
- jquery - 将数组中的数据返回到表中
- kubernetes - Kubernetes:Pod 和 CPU 限制