gpt4 book ai didi

用于基于文件的进程通信的 Java 文件锁定机制

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:39:34 24 4
gpt4 key购买 nike

我有两个 Java 进程 (JAR),一个每 1 分钟写入一个文本文件,另一个正在读取该文件并调用 Web 服务将数据存储在数据库中。

有什么方法可以在写模式下锁定文件?我观察到,当 wvdial 拨调制解调器时,它会在/var/lock/ttyUSB0..LOCK 中创建一个锁定文件,我认为。如果文件处于写入模式,我想要这种程序,另一个进程可以等到写入完成。写入后进程可以读取文件内容。

请指导我解决我的问题。

谢谢

最佳答案

也许这门课可以帮到你http://docs.oracle.com/javase/7/docs/api/java/nio/channels/FileLock.html

编辑:这篇文章可能已经涵盖了主题 How can I lock a file using java (if possible)

例子:

FileInputStream in = new FileInputStream(file);
try
{
java.nio.channels.FileLock lock = in.getChannel().lock();
try
{
//write
}
finally
{
lock.release();
}
}
finally
{
in.close();
}

正在阅读过程中:

FileInputStream in = new FileInputStream(file);
try
{
FileLock lock = in.getChannel().tryLock();
if (lock == null)
{
//file is locked, wait or do something else
}
else
{
try
{
//read
}
finally
{
lock.release();
}
}
}
finally
{
in.close();
}

关于用于基于文件的进程通信的 Java 文件锁定机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16788740/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com