fileChannel.lock无法正常工作

时间:2013-11-27 16:23:33

标签: java file operating-system nio

我正在使用fileChannel.lock(long position, long size, boolean shared)来获取文件特定部分的独占访问权限。确切的代码是:

fileChannel.lock(3458, 128, false);

但不幸的是,当我尝试从不同的进程中更改文件中的任何位置时,它会抛出异常,说该文件已被锁定。但我的期望是它应该允许我更改文件的任何部分,而不是我锁定的部分。

有人可以帮助我找到我做错的事吗?


有关我的设置的一些细节:

操作系统详细信息:

Mac OS X Lion 10.7.5

处理详细信息:

  1. 锁定文件特定部分的java进程
  2. TextWrangler ,它尝试更改与锁定部分不同的文件中的文件。但它失败了。

1 个答案:

答案 0 :(得分:1)

FileChannel.lock方法依赖于操作系统。此外,您不会在unix平台上获得任何文件锁定。这就是为什么它可能无法在Mac OS X上运行,因为这是基于unix的。