Страницы

Поиск по вопросам

понедельник, 23 декабря 2019 г.

как залочить xml на время работы тулзы на JAVA

#java #файлы


Есть xml, который открываю для редактирования на java.

Как сделать так, чтобы на время работы тулзы, редактировать файл никто другой не мог?

Дополнение: Нужно учесть, что тулза может быть завершена аварийно, поэтому file.setWritable(false)
наверное не подойдет (файл останется залоченым)

К сожалению, вариант

 Runtime.getRuntime().addShutdownHook(new Thread(() -> {
    file.setWritable(true);
}));


Не подходит, потому что если, во время работы программы, аварийно ее завершить, файл
остается read only.
    


Ответы

Ответ 1



setWritable вполне подходят для ваших целей. А чтобы файл не оставался залоченым после остановки приложения, может помочь вот это Runtime.getRuntime().addShutdownHook(new Thread(() -> { file.setWritable(true); }));

Ответ 2



public class JavaApplication17 { /** * @param args the command line arguments */ public static void main(String[] args) { final File file = new File("myFile"); Runtime.getRuntime().addShutdownHook(new Thread() { public void run() { file.setWritable(true); } }); try { file.setWritable(false); Thread.sleep(1000000); } catch (Exception e) { // обработка исключений } finally { file.setWritable(true); } }

Комментариев нет:

Отправить комментарий