我有一个.txt文件存储玩家'钱。我需要这个文件来增加或损害一定数量,具体取决于玩家是否杀死了某些东西,或者他们是否从商店购买了东西。
问题是我不知道如何实际增加或损害内容。我可以使用新的钱删除/重新创建.txt文件,但是由于多个线程将访问该文件,因此存在文件可能因为被删除而尚未重新生成而不存在的风险。
只是为了澄清,一次只有一个线程修改文件。其他线程只会读取文件。
那么如何在不删除数据/文件的情况下完成此操作呢?
答案 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)
拥有一个带有队列的单一数据访问器,以便它是唯一一个操纵该文件的人。如果必要,在写入后确认客户端线程。