Java FileWriter拒绝覆盖
我很困惑Java FileWriter拒绝覆盖,java,filewriter,Java,Filewriter,我很困惑 public class Testing { public static void main(String[] args) throws FileNotFoundException, IOException, InterruptedException { System.out.println("Testing overwrite"); FileWriter writer = new FileWriter("c:\\testing\\test
public class Testing {
public static void main(String[] args) throws FileNotFoundException, IOException, InterruptedException {
System.out.println("Testing overwrite");
FileWriter writer = new FileWriter("c:\\testing\\testfile.txt", false);
writer.write("First test");
writer.flush();
TimeUnit.SECONDS.sleep(5);
writer.write("Second test");
writer.flush();
writer.close();
}
}
完成后,文件内容为:
First testSecond test
根据此处的Java文档,传递给FileWriter
的值为False
的布尔值应导致覆盖,而不是追加:
我以前遇到过这个问题,我使用了RandomAccessFile
来绕过这个问题,但现在它让我很恼火
如果您有任何想法或建议,我们将不胜感激,谢谢 打电话时
FileWriter=newfilewriter(“c:\\testing\\testfile.txt”,false)代码>它将覆盖该文件。它不会根据覆盖。写入。该选项仅适用于承包商。啊,我明白了。在这种情况下,要么我误解了,要么有点误导。那么,每次覆盖文件的最佳机制是什么呢?可能是。每次要覆盖时,请关闭并使用新FileWriter
重新打开文件。这就完成了任务。似乎我误解了文件编写者的意思。我会在每次写之前重新创建它。谢谢你把它清理干净!为什么不使用[write(String,int,int);
](,int,int))手动设置偏移量呢?我知道这是一个选项。因此,我必须在使用字符串之前存储它,然后将它的长度传递给write?手动偏移量方法仍然会导致追加。