Наша java-программа постоянно записывает важные данные в файл. Теперь мы хотим выбросить какое-то исключение или отобразить какое-то сообщение об ошибке на консоли всякий раз, когда файл (к которому записывается программа java) удаляется отдельным пользователем вручную.
Я обнаружил, что java не генерирует никаких исключений, когда он пытается записать файл, который был удален.
Метод я -. Начните новый поток, который будет продолжать проверять, есть ли файл и сообщить основную программу java об этом, когда файл был удален. Это не будет работать в нашем случае, так как у нас будет несколько файлов, в которые будет записываться программа java, поэтому запуск нового потока для каждого файла не будет эффективным с точки зрения памяти.
Метод II - Проверяйте наличие файла каждый раз перед записью в файл. Это также не очень хороший подход, поскольку проверка существования файла является более дорогостоящей операцией.
Метод III - Расширить java.io.FilterWriter (который мы используем для записи в файл) и переопределить метод write() бросать исключение всякий раз, когда он пытается записать файл, который был удален. Это кажется хорошим решением, но я не мог найти места, где Java переваривает какое-то исключение (когда он пытается записать в удаленный файл), который мы можем бросить, переопределив этот метод.