Редактировать файл с внешним приложением на Java и писать обратно? - PullRequest
0 голосов
/ 07 марта 2011

Как редактировать файл из приложения Java, если вы не знаете, с каким приложением связан файл. Кроме того, поскольку я использую Java, я бы предпочел независимое от платформы решение. После закрытия внешнего приложения я хочу записать изменения в файл обратно. Файл редактирования был локальным временным файлом. Настоящий файл сохраняется на сервере, в архиве или в другом месте.

Теперь я могу использовать класс Рабочий стол , чтобы открыть файл для редактирования. Но как я могу определить, был ли файл закрыт.

Ответы [ 2 ]

1 голос
/ 07 марта 2011

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

Другим вариантом может быть использование стороннего API, такого как FileListener от Apache, который также делает то же самое внутри.

0 голосов
/ 07 марта 2011

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

Если вы просто хотите дождаться завершения внешнего приложения, вы можетевместо этого используйте RunTime:


Process p = Runtime.getRuntime.exec("mycommand");
p.waitFor()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...