[Java] ファイルをロックする方法
とある事情で、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(); } } }