我们第二次写文件时用新内容替换文本文件的旧内容

0 java

嗨我正在通过java代码将一些数据写入文本文件但是当我再次运行代码时它再次附加到旧数据,我希望新数据覆盖旧版本.任何人都可以帮忙..

BufferedWriter  out1 = new BufferedWriter(new FileWriter("inValues.txt" , true));
  for(String key: inout.keySet())
                {
                    String val = inout.get(key);
                    out1.write(key+" , "+val+"\n");
                }
                out1.close();
Run Code Online (Sandbox Code Playgroud)

Joh*_*ner 5

代码会有所帮助,但它可能会告诉它附加数据,因为默认是覆盖.找到类似的东西:

file = new FileWriter("outfile.txt", true); 
Run Code Online (Sandbox Code Playgroud)

并将其更改为

file = new FileWriter("outfile.txt", false); 
Run Code Online (Sandbox Code Playgroud)

要不就

file = new FileWriter("outfile.txt");
Run Code Online (Sandbox Code Playgroud)

因为默认是覆盖,要么应该工作.

根据您的编辑,只需在FileWriter中将true更改为false,或将其删除.第二个参数不是必需的,当true指定要将数据附加到文件时.

您提到了写入不完整的问题... BufferedWriter()不是必需的,如果您的文件很小,那么您可以单独使用FileWriter()并避免任何此类问题.如果你确实使用BufferedWriter(),你需要在.close()之前.flush()它.

BufferedWriter out1 = new BufferedWriter(new FileWriter("inValues.txt"));
for(String key: inout.keySet())
   {
       String val = inout.get(key);
       out1.write(key+" , "+val+"\n");
   }
   out1.flush();
   out1.close();
Run Code Online (Sandbox Code Playgroud)