Java - Как обнаружить удаление файла при записи в файл?

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

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

Метод I - Запустить новый поток, который будет продолжать проверять наличие файла и уведомлять об этом основную программу Java, когда файл был удален. В нашем случае это не сработает. поскольку у нас будет несколько файлов, в которые будет записывать java-программа, поэтому запуск нового потока для каждого файла не будет эффективно использовать память.

Метод II - Проверяйте наличие файла каждый раз непосредственно перед записью в файл. Это также не лучший подход, потому что проверка файла Существование - более дорогостоящая операция.

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

11
задан Yatendra Goel 23 June 2011 в 07:02
поделиться