使用Java创建文件io的高分

时间:2016-01-16 20:59:16

标签: java file-io

我一直试图用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);
}

我的文本文件每行只包含数字

2 个答案:

答案 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将帮助您指出代码中行号的问题,确切地说您将获得异常。