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