У меня раздражающая проблема, которую я не могу решить. У меня есть класс с именем DirFormMgmt, который управляет двумя файлами; directoryies.txt и format.txt. Проблема в том, что когда я запускаю экземпляр этого класса при запуске программы, он очищает все, что было в файлах перед его запуском, например, если я открываю файл format.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 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 (), но я не уверен, что не так, любая помощь очень ценится!