Как создать операцию записи атомарного файла? Файл должен быть написан службой Java и прочитан скриптами python.
Для записи чтение намного больше, чем пишет. Но запись происходит в партиях и, как правило, длинна. Размер файла составляет мегабайты.Операции записи на атомные файлы (кросс-платформа)
Сейчас мой подход:
- содержимое файла в записи временный файл в том же каталоге
- Удалить старый файл
- Rename временный файл со старым именем.
Это правильный подход? Как избежать ситуаций, когда старый файл удален, но новое имя файла еще не переименовано?
Эти языки программирования (python и java) предлагают конструкции для блокировки и предотвращения этой ситуации?
Замечание: похоже, что Java NIO.2 имеет лучшую поддержку для этого (по крайней мере, на уровне API): http://openjdk.java.net/projects/nio/javadoc/java/nio/file/Path .html # moveTo% 28java.nio.file.Path,% 20java.nio.file.CopyOption ...% 29 –
Как и http://stackoverflow.com/questions/1812115/how-to-safely-write-to -a-file –
@Pascal. Его в Java 7. Долгий путь ... :-( –