Java 文件在创建对象时自动清除

Java 文件在创建对象时自动清除,java,file,object,Java,File,Object,我有一个恼人的问题,我似乎无法解决。我有一个名为DirFormMgmt的类,它管理两个文件;directories.txt和formats.txt。问题是,当我在程序启动时实例化此类的实例时,它会清除启动前文件中的所有内容,因此,例如,如果我打开formats.txt文件并键入“.avi”并运行程序,文本文件将变为空白。以下是我在类中运行的唯一用于隔离问题的代码,我不确定为什么会发生这种情况: 我在班上的第一名宣布: File dirFile = new File("directories.tx

我有一个恼人的问题,我似乎无法解决。我有一个名为DirFormMgmt的类,它管理两个文件;directories.txt和formats.txt。问题是,当我在程序启动时实例化此类的实例时,它会清除启动前文件中的所有内容,因此,例如,如果我打开formats.txt文件并键入“.avi”并运行程序,文本文件将变为空白。以下是我在类中运行的唯一用于隔离问题的代码,我不确定为什么会发生这种情况:

我在班上的第一名宣布:

File dirFile = new File("directories.txt");
File formatFile = new File("formats.txt");
private BufferedReader dirReader;
private BufferedWriter dirWriter;
private BufferedReader formatReader;
private BufferedWriter formatWriter;
建造商:

public DirFormMgmt() throws IOException {
     checkFileExistence();
     initReaderWriter();
}
public void checkFileExistence() throws IOException {
     if (!dirFile.exists()) {
         dirFile.createNewFile();
     }
     if (!formatFile.exists()) {
         formatFile.createNewFile();
     }   
}
构造函数调用的两个方法:

public DirFormMgmt() throws IOException {
     checkFileExistence();
     initReaderWriter();
}
public void checkFileExistence() throws IOException {
     if (!dirFile.exists()) {
         dirFile.createNewFile();
     }
     if (!formatFile.exists()) {
         formatFile.createNewFile();
     }   
}
以及:


我检查了createNewFile()方法是否被调用,但它们没有被调用,因此问题一定出在我的initReaderWriter()方法上,但我不确定哪里出了问题,非常感谢您的帮助

使用
newfilewriter(file,true)
将内容附加到现有文件中。否则,内容将被覆盖。

使用
新建FileWriter(file,true)
将内容附加到现有文件。否则,内容将被覆盖。

您不能像这样读写同一个文件。FileWriter构造函数用于写入文件并替换其所有内容


要么读取内存中的所有内容,然后写入该文件,要么写入另一个临时文件,然后删除原始文件并在完成后重命名该临时文件。

您不能像这样读取和写入同一个文件。FileWriter构造函数用于写入文件并替换其所有内容

要么读取内存中的所有内容,然后写入该文件,要么写入另一个临时文件,然后删除原始文件并在完成后重命名该临时文件