有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将txt写入文件而不附加

好的,我实现了一个系统,我保存了一个.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);
    }
}

共 (4) 个答案

  1. # 1 楼答案

    您正在启用附加功能。将(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. # 2 楼答案

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

  3. # 3 楼答案

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

    看起来像fbr。readLine()不为null,因此每次都会追加内容

  4. # 4 楼答案

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

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