FileWriter вообще не записывает в файл, но не выдает исключения - PullRequest
0 голосов
/ 02 октября 2019

Я пытаюсь записать текст в файл, используя FileWriter. Программа запускается без каких-либо исключений, кроме тех, для которых она предназначена (запись в файл является частью создания исключения), но файл остается пустым. Файл находится в том же каталоге, что и файл .java, содержащий исключение, и файл .java, который вызывает исключение.

Я сбрасываю и закрываю объект FileWriter надлежащим образом, он находится в блоке try / catchэто должно быть печать любых исключений, с которыми сталкивается код, я попытался использовать PrintWriter с FileWriter в качестве параметра, и другие части метода определенно выполняются.

NegativeBalanceException() throws IOException{
        super("Error:negative balance");
        try {
        FileWriter logger = new FileWriter("logfile.txt", false);
        logger.write("Error:negative balance");
        logger.flush();
        logger.close();
        }
        catch(Exception e) {
            e.printStackTrace();
        }
    }

Я ожидаю, что файл будет содержать сообщения«Сумма превышает баланс на -100,0» и «Ошибка: отрицательный баланс». Исключение определенно создается, и я могу вызвать для него функцию getMessage (), чтобы напечатать два вышеупомянутых сообщения. Тем не менее, файл начинается пустым и остается пустым после завершения программы.

1 Ответ

0 голосов
/ 05 октября 2019

Я нашел решение. Я работаю в Eclipse, и кажется, что относительный путь начинается с рабочего каталога программы, а не с каталога src, как я предполагал (и где я разместил свой файл). Я заставляю java искать файл не в том месте.

...