[JAVA]如何创建排名系统然后将其保存到 .txt 文件?

[JAVA]How to create a Ranking System then saving it to a .txt file?

所以,我有一个"Memory Game",你可以输入你的名字,选择难度(4x4或6x6游戏)然后开始游戏。 当您点击开始时,会弹出一个新的面板并开始游戏。

按钮将是随机的,您每犯一个错误,您就会失去 2 分,而对于每个正确的组合,您将获得 10 分。 最后或者如果您单击退出按钮,将弹出一条消息,说明玩家的姓名、他尝试了多少次(单击 2 个不同的按钮)以及他有多少点数。然后游戏结束并且不保存玩家的分数。

现在,我的问题是,我不知道如何在我的代码中实现排名系统。这将是一些基本的东西,比如,比较所有分数并将它们重新排列为得分最高的分数,依此类推。

所以根据我的研究,我需要一个 Save 方法,当有人完成游戏时,它会将他们的分数保存在一个 .txt 文件中,以及一个 Array 方法,它将分数从最好到最差排列。

这是完整的代码;

http://pastebin.com/6Wtiju7z

private void mostrarResumoJogo() { 
    resumoJogo = "Jogador: " + objJogadorJogada.getNome() + " " +
            "Pontos: " + objJogadorJogada.getPontos() + " " +
            "Quantidade de tentativas: " + qtdeTentativas;

    JOptionPane.showMessageDialog( null, "" + resumoJogo, "Resumo do Jogo",
            JOptionPane.INFORMATION_MESSAGE ); 

    BufferedWriter writer = null;
    try {
        writer = new BufferedWriter( new FileWriter("Ranking.txt") );
        writer.write(resumoJogo);
    }
    catch ( IOException e) { }
    finally {
        try {
            if (writer != null)
                writer.close( );
        }
        catch ( IOException e) { }
    }

    setVisible( false );
}

问题是文件总是被新的 .txt 覆盖 我已经尝试创建一个类型文件属性,这样他就不会总是创建另一个 .txt 但没有成功。

这是我需要对这段代码做的最后一件事,但我似乎无法弄清楚,请帮忙。

可能这就是您要找的东西

https://docs.oracle.com/javase/7/docs/api/java/io/FileWriter.html#FileWriter(java.lang.String,%20boolean)

只需将 APPEND 参数指定为 true,您的更改将不会被覆盖

为了使其不被覆盖,而是在调用 FileWriter 构造函数时附加而不是传递 append=true。

虽然我建议每次只读取和写入整个文件,但我不会这样做。这是因为必须对分数进行排序并重写到文件中。

我建议使用 JAXB 创建一个 XML 文件。这是使用 JAXB 执行此操作的教程:http://www.mkyong.com/java/jaxb-hello-world-example/

The problem is that the file is always overwritten with a new .txt

问题出在这里

writer = new BufferedWriter( new FileWriter( "Ranking.txt"));

每次调用 new FileWriter( "Ranking.txt") 它都会创建一个新的空文件。如果您想向现有文件添加更多数据,您需要通过

以追加模式打开它
writer = new BufferedWriter( new FileWriter( "Ranking.txt", true));
//                                           add this part -^^^^