如何按文件增加文件中的数字?

时间:2014-07-08 10:07:03

标签: java io

我有一个.txt文件存储玩家'钱。我需要这个文件来增加或损害一定数量,具体取决于玩家是否杀死了某些东西,或者他们是否从商店购买了东西。

问题是我不知道如何实际增加或损害内容。我可以使用新的钱删除/重新创建.txt文件,但是由于多个线程将访问该文件,因此存在文件可能因为被删除而尚未重新生成而不存在的风险。

只是为了澄清,一次只有一个线程修改文件。其他线程只会读取文件。

那么如何在不删除数据/文件的情况下完成此操作呢?

2 个答案:

答案 0 :(得分:1)

这是代码,首先读取文件然后再增加它并再次存储 -

   BufferedWriter out = null;
    try {

        // Read File Contents - score
        BufferedReader br = new BufferedReader(new FileReader("c:\\a.txt"));
        String storedScore="0";
        int storedScoreNumber = 0;
        while ((storedScore = br.readLine()) != null) {
            storedScoreNumber=(Integer.parseInt(storedScore==null?"0":storedScore));
        }

        // Write File Contents - incremented socre
        out = new BufferedWriter(new FileWriter("c:\\a.txt", false));
        out.write(String.valueOf(storedScoreNumber+1));

    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (out != null) {
            try {
                out.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

答案 1 :(得分:0)

拥有一个带有队列的单一数据访问器,以便它是唯一一个操纵该文件的人。如果必要,在写入后确认客户端线程。