java - 文件在对象创建时自行清除

标签 java file object

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

在我的类(class)顶部我声明:

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 void initReaderWriter() throws IOException {
     dirReader = new BufferedReader(new FileReader(dirFile));
     dirWriter = new BufferedWriter(new FileWriter(dirFile));

     formatReader = new BufferedReader(new FileReader(formatFile));
     formatWriter = new BufferedWriter(new FileWriter(formatFile));
}

我检查了 createNewFile() 方法是否被调用,但它们没有被调用,所以问题一定出在我的 initReaderWriter() 方法上,但我不确定出了什么问题,非常感谢任何帮助!

最佳答案

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

关于java - 文件在对象创建时自行清除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5134361/

相关文章:

Javascript - 来自 chrome 扩展的双重回调不适用于 "this"

java - 在子类上使用 Mockito spy 时调用抽象类中的可变长度参数方法抛出异常

java - 从 REST JSON 响应获取 HTML ID 标签

python - python tkinter 中的菜单 : save file to a new directory

Java 打开并读取目录中的文件

java - 使用静态对象的第二个非静态引用时出现 NullPointer 异常

c++ - 将数字合并到对象的名称

java - 将变量从一个 POJO 复制到另一个

java - Spring Boot 和安全性中的 CORS 支持

java - 将游戏保存到文件