Используя BufferedWriter для записи данных в файл .txt, если приложение принудительно закрыто, какие-либо данные, сохраненные в файлах .txt, не сохраняются? - PullRequest
0 голосов
/ 24 июня 2018

Это код, который я использую:

    public static void log(String directory, String name, String input) throws IOException {
    File path = new File(directory);
    if (!path.exists()) {
        path.mkdirs();
    }
    File file = new File(directory + "/" + name + ".txt");
    FileWriter fw = new FileWriter(file.getAbsoluteFile());
    BufferedWriter bw = new BufferedWriter(fw);         
    bw.write(input);
    bw.close();
}

У меня есть приложение, регистрирующее множество различных файлов .txt во время его работы.Насколько я понимаю, когда текстовый файл «открыт» с помощью этого метода журнала, он занят, пока программа не будет закрыта.И если по какой-либо причине его принудительно закрыть (например, закрыть мой компьютер или закрыть его через диспетчер задач), он не сохранит данные, которые были записаны во время его открытия.Есть ли способ решить это?Спасибо.

1 Ответ

0 голосов
/ 24 июня 2018

Насколько я понимаю, после того, как текстовый файл "открыт" с помощью этого метода журнала, он занят до закрытия программы.

Нет.Он закрывается, когда вы звоните close().

И когда он по какой-либо причине принудительно закрывается (например, выключается мой компьютер или закрывается через диспетчер задач), он не сохраняет никаких данных, которые былизаписано во время открытия.

Данные будут сброшены при вызове close.

Есть ли способ решить эту проблему?

Решать нечего.

...