【发布时间】:2009-01-06 12:08:25
【问题描述】:
这可能与以前的帖子类似,但我想具体说明在网络上而不是本地上锁定的使用。我想将文件写入共享位置,因此它很可能会在网络上运行(当然是 Windows 网络,也可能是 Mac)。我想防止其他人在写入该文件时读取它的任何部分。这不是一个高度并发的进程,文件通常小于 10MB。
我已经阅读了FileLock 文档和File 文档,对于什么是安全的,什么不是安全的感到有些困惑。我想锁定整个文件,而不是其中的一部分。
我可以使用FileChannel.tryLock(),它在网络上是安全的,还是取决于网络的类型?它是否可以在标准的 Windows 网络上运行(如果有的话)。
如果这样不行,最好是创建一个零字节文件或目录作为锁文件,然后写出主文件。为什么File.createNewFile() 文档说不要使用它来锁定文件?我很欣赏这取决于比赛条件,并不理想。
【问题讨论】:
标签: java file networking