ファイルをロックする方法
とある事情で、Javaプログラムからファイルへロックを掛ける方法を考えていたので、見つけた方法を記述します。
java.nioパッケージのFileChannelとFileLockを利用する方法です。サンプルソースを載せておこっと。今度参照する機会があれば良いな。
public class FileLockSample {
public static void main(String[] args) throws Exception{
final String filePath = "src/filelock/target.txt";
File lockFile = new File(filePath);
FileOutputStream fs = null;
try{
fs = new FileOutputStream(lockFile);
FileChannel ch = fs.getChannel();
FileLock lock = null;
try {
lock = ch.tryLock(); //ロックを取得
//ロックを取得しての処理
} finally {
if(lock != null) lock.release();
}
}finally{
if(fs != null) fs.close();
}
}
}