有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案