dfe*_*r88 2 java file-io user-input
我正在为学校编写一份编程任务.这是一个简单的基于文本的RPG.当我在本地(手动)测试程序时,它可以正常工作.但是,当我将它提交给评分服务器时,它会创建某种无限循环.
我通过电子邮件发送了我的教授,他通过解释服务器如何测试程序来回应.它使用以下格式:java IPA1 (XML file name) < (Input file) > (output file).IPA1是主java文件的名称.似乎< (Input file)由于某种原因导致无限循环......但我无法确定原因.
我的程序使用以下代码获取其输入:
boolean gameOver = false;
while (!gameOver) {
Command cmd = inputParser.getCommand();
gameOver = processCommand(cmd);
}
Run Code Online (Sandbox Code Playgroud)
该getCommand(cmd)如下:
public Command getCommand() {
String input = "";
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try {
input = reader.readLine();
} catch(java.io.IOException exc) {
System.out.println ("Error");
}
return new Command(input);
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:当我按顺序手动输入每个命令时,为什么会这样?但是当使用输入文件时失败?
这是因为您正在创建一个缓冲读取器,其读取次数超过您请求读取的次数.当您告诉它读取五个字符时,它会读取更多内容并将其保存以用于下一次提高性能的请求.您应该重用一个BufferedReader而不是创建其中的许多BufferedReader,因为当您创建其中许多时,第一个已经抓住了您想要用第二个读取的内容.
| 归档时间: |
|
| 查看次数: |
166 次 |
| 最近记录: |