java原子文件创建和锁定
我需要一个线程安全的方法来自动创建一个新文件并立即锁定它
方法FileChannel.open()
与StandardOpenOption
{WRITE
一起以原子方式执行创建部分。但是lock()
方法不会在同一个“事务”中调用
例如,如果
FileChannel.open(Paths.get("log.txt"),StandardOpenOption.CREATE_NEW,
StandardOpenOption.WRITE).lock()
及
new FileWriter("log.txt").write("Hello world")
如果同时执行,则可能会通过open()
创建文件log.txt
,但只有在执行写入操作后才能获取锁。
在这种情况下,我需要open()
抛出一个异常,以便处理它(例如,向文件名添加一个计数器)
共 (0) 个答案