我正在使用Java从头开始创建游戏引擎,我已经开始处理新的保存文件,而不是对地图使用imaages:

工作并打印出每一行:

while ((readString = buf.readLine()) != null) {
    System.out.println("Failed to assign action to line: " + readString);
}


不起作用,打印出前三行:

while ((readString = buf.readLine()) != null) {
                if (readString.contains("Width:")){
                    readString.replace("Width:", "");
                    readString.trim();
                    Integer.parseInt(readString);
                    System.out.println(readString);
                }else if (readString.contains("Height:")){
                    readString.replace("Height::", "");
                    readString.trim();
                    Integer.parseInt(readString);
                    System.out.println(readString);
                }else{
                    System.out.println("Failed to assign action to line: " + readString);
                }
}


如您所见,最上面的一行正在工作,并将每一行打印到控制台,第二行在读取第三行后停止。研究问题时我什么也没发现,语法似乎是正确的。我的代码有什么问题?

最佳答案

您可能没有看到一个例外。

将其放在您的代码中:

try {
   //.. your while-loop here
}
catch(Exception e) {
   e.printStackTrace();
}


然后修复错误。

另一个提示:readString.replace("Width:", "")readString.trim()Integer.parseInt(readString)将不起作用。
函数本身不会更改变量,您需要将其结果分配给变量。

例:

 readString = readString.trim();

10-08 14:25