Как получить событие закрытия файла с помощью Java
Мое приложение сохраняет данные файла Excel в базе данных (mongodb
) с помощью java
,
По клику пользователя мое приложение сделает
- Сначала создайте файл Excel на локальном
filesystem
напримерC:\ali.xlsx
и поместите данные в файл Excel. - Открыть файл Excel
C:\ali.xlsx
с помощьюjava.awt.Desktop
учебный классopen
метод дляcross platform
перспектива. Когда пользователь закрывает файл
C:\ali.xlsx
получает событие закрытия, так что я получу обновленное значение файла и сохраню его вdatabase
,Удалить файл
C:\ali.xlsx
из местногоfilesystem
,
Мой вопрос:
Как реализовать третий пункт пули.
Короче говоря: как добраться close
событие любого файла, использующего java
,
Если у кого-то есть другой подход к реализации этой функциональности, пожалуйста, скажите мне, поэтому я пишу поток приложений.
2 ответа
Я не знаю какой-либо простой способ, путь в гору (:-)) будет:
- смотреть файловую систему с помощью WatchService, ( учебник)
- в случае изменения файла Excel проверьте, открыт ли он в списке процессов, а если нет - выполните следующий шаг.
Если я правильно понимаю, у вас есть лист Excel, и вы хотите сохранять эти данные в mongodb каждый раз, когда они обновляются. Для того, что вы просите, нет триггера. Вместо этого вы можете регулярно читать файл и проверять атрибут "lastModified". Или, поскольку вы удаляете файл каждый раз, это означает, что если он существует, у вас есть обновление.