我有一个 java 独立应用程序,它将处理目录中的文件。这个 java 应用程序在 AIX 框中运行,由每 1 分钟运行一次的 cron 作业触发。我的目标是如果 java 应用程序的一次调用访问特定文件在那个目录中,该文件应该被锁定以供第二次或其他调用访问,直到第一次 java 调用处理它并释放锁。
Java 中是否有任何方法以编程方式锁定文件?此代码尤其适用于 AIX
最佳答案
您可以 lock files using NIO , 类似的东西
try
{
RandomAccessFile file = new RandomAccessFile( "yourfile.txt" , "rw" );
FileChannel fc = file.getChannel();
FileLock fileLock = fc.tryLock();
if ( fileLock != null )
{
// Do stuff on the file
}
}
catch ( OverlappingFileLockException e )
{
// File was locked
}
应该可以。
干杯,
关于java锁定文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14120090/