好的,所以我正在实施一个系统,我保留了.txt
文件中的计数。
计数是一个整数。
我唯一的问题是,不是替换以前的计数; e.g
"78" -> "79"
它将新计数添加到先前的计数; e.g
"78" -> "7879"
我的代码是:
private static void saveCount(int inCount) throws FileNotFoundException, IOException {
BufferedReader fbr = new BufferedReader(new FileReader("count.txt"));
try (FileWriter fw = new FileWriter("count.txt", (fbr.readLine() != null))) {
String count = Integer.toString(inCount);
fw.write(count);
}
}
答案 0 :(得分:5)
FileWriter
构造函数的第二个参数是布尔标志append
。将其设置为false以覆盖文件而不是附加。
答案 1 :(得分:3)
您正在启用追加功能。将(fbr.readLine()!=null)
替换为false
以禁用追加,如下所示:
private static void saveCount(int inCount) throws FileNotFoundException,
IOException {
BufferedReader fbr = new BufferedReader(new FileReader("count.txt"));
try (FileWriter fw = new FileWriter("count.txt", false)) {
String count = Integer.toString(inCount);
fw.write(count);
}
}
答案 2 :(得分:1)
您使用的FileReader的构造函数具有参数append(boolean)。万一它是真的 - 你将追加文件的内容(并有7879)。万一它是假的 - 文件内容将被覆盖。
所以看起来fbr.readLine()不是null,所以每次都附加内容。
答案 3 :(得分:1)
使用BufferedWriter而不是BufferedReader,并在完成后关闭它。
BufferedWriter out = new BufferedWriter(new FileWriter("count.txt"));
out.write(Integer.toString(inCount));
out.close();