С этим while (true)
без break
ваш код в основном выполняется в бесконечном цикле и никогда не останавливается, если нет исключения.
Если он завершился, но вы не увидели исключение, тогдаэто может быть вызвано вызовом System.exit(1)
в catch.Тогда может быть слишком поздно печатать "Error"
в любом случае (стандартный вывод мог быть прерван слишком рано), и файл никогда не будет сброшен / закрыт.Удалите эту строку System.exit(1)
.
Также закрытие должно происходить в блоке finally
.И лучше всего не печатать ничего не говорящее сообщение об исключении, а просто отпустить его.Поскольку у вас уже есть throws Exception
в методе, просто удалите весь catch
.Используйте его только тогда, когда вы можете обрабатывать исключения разумным образом.
PrintWriter output = new PrintWriter("output2.txt");
try {
output.println("something");
} finally {
output.close();
}