我一直试图用file.io创建一个高分,但却无法做到。这是我的代码。
public void highScore ()
{
int highScore = 0;
String line = "";
try
{
BufferedReader reader = new BufferedReader (new FileReader ("highScores"));
while ((line = reader.readLine ()) != null) // read the score file line by line
{
try
{
int score = Integer.parseInt (line); // parse each line as an int
if (score > highScore) // and keep track of the largest
{
highScore = score;
}
}
catch (NumberFormatException e1)
{
// ignore invalid scores
//System.err.println("ignoring invalid score: " + line);
}
line = reader.readLine ();
}
reader.close ();
}
catch (IOException ex)
{
System.err.println ("ERROR reading scores from file");
}
c.println (highScore);
}
我的文本文件每行只包含数字
答案 0 :(得分:1)
我想你得到了:
“ERROR从文件中读取分数”
您应修复文件扩展名:
BufferedReader reader = new BufferedReader (new FileReader ("highScores.txt"));
并确保该文件位于项目的文件夹中。
另外,请注意,每次在while循环结束时和while标题中都会从文件中读取两行,因此请在循环结束时删除line = reader.readLine ();
。
答案 1 :(得分:1)
作为旁注,最佳做法是抓住Exception
。现在你只是试图捕捉IOException
,做类似
catch(Exception e){
e.printStackTrace();
}
由于Exception是所有异常的超类,如果代码由于某些其他异常(在这种情况下可能是FileNotFoundException
)而破坏,您可以看到
并打印堆栈tarce将帮助您指出代码中行号的问题,确切地说您将获得异常。