Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将txt写入文件而不追加_Java_String_Io - Fatal编程技术网

Java 将txt写入文件而不追加

Java 将txt写入文件而不追加,java,string,io,Java,String,Io,好的,我正在实现一个系统,我正在将计数保存在.txt文件中 计数是一个整数 我唯一的问题是,不是取代以前的计数;e、 g "78" -> "79" "78" -> "7879" 它将新计数添加到上一个计数中;e、 g "78" -> "79" "78" -> "7879" 我的代码是: private static void saveCount(int inCount) throws FileNotFoundException, IOException {

好的,我正在实现一个系统,我正在将计数保存在
.txt
文件中

计数是一个整数

我唯一的问题是,不是取代以前的计数;e、 g

"78" -> "79"
"78" -> "7879"
它将新计数添加到上一个计数中;e、 g

"78" -> "79"
"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);
    }
}

您正在启用附加。将
(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);
    }
}

FileWriter
构造函数的第二个参数是布尔标志
append
。将其设置为false以覆盖文件而不是追加。

您使用的FileReader的构造函数有一个参数append(布尔值)。如果它为真,您将附加文件的内容(并拥有7879)。如果为false,则文件内容将被覆盖


看起来fbr.readLine()不是空的,所以每次都要追加内容。

使用BufferedWriter而不是BufferedReader,完成后关闭它

    BufferedWriter out = new BufferedWriter(new FileWriter("count.txt"));
    out.write(Integer.toString(inCount));
    out.close();

@JunedAhsan它工作得很好。也许在以前的编辑中有什么内容被破坏了?注意:您可以从您的答案中删除
BufferedReader
,因为它不再需要。我知道,但我不想违反用户原始代码,只想提出解决问题的方法。-1,“不想违反用户原始代码”不是在代码中留下无用积垢的借口。您已经删除了唯一使用
fbr
的部分,为什么不完成此项工作?