我有2-3个程序,可以修改文件,但我想阻止别人,如果一个程序正在使用它。我不能在这里使用同步。还有其他规定吗?
发布于 2016-11-24 10:26:29
不同应用程序上的文件锁定--它不是在Java级别处理的。您必须在操作系统级别处理它。不同的操作系统有不同的解决方案。
如果一个程序正在使用它,我想阻止其他程序。
您可能想要一个写锁,不包括所有的读者和作者。但允许你的一些程序。在windows上,可能会出现这种链接兴趣。
它非常依赖于平台,但它是一个Java代码来尝试它:
FileInputStream in = new FileInputStream(file);
try {
java.nio.channels.FileLock lock = in.getChannel().lock();
try {
Reader reader = new InputStreamReader(in, charset);
...
} finally {
lock.release();
}
} finally {
in.close();
}https://stackoverflow.com/questions/40783630
复制相似问题