在Java程序中判断文件是否正在被其它应用程序写,可以用文件锁来解决,文件锁方案需要底层操作系统支持,在不同的系统中可能有不同的效果。
FileInputStream fis = new FileInputStream(file);
FileChannel fc = fis.getChannel();
// 试图获取对此通道的文件的独占锁定
// 如果由于另一个程序保持着一个重叠锁定而无法获取锁定,则返回 null
FileLock fl = fc.tryLock();
if(fl == null){
fc.close();
fis.close();
return false;
}
fl.release();
fc.close();
fis.close();