[java][nio]文件加锁


import java.io.FileOutputStream;
import java.nio.channels.FileLock;
import java.util.concurrent.TimeUnit;
/**
 * 
 * 文件加锁.
 *
 */
public class FileLocking {

	public static void main(String[] args) throws Exception {
		FileOutputStream fos = new FileOutputStream("D:\\temp.tmp");
		//tryLock是非阻塞式,未获得锁则直接返回
		//lock是阻塞式的.
		//tryLock(position, size, shared)可以部分锁定文件
		//FileLock.isShared查询共享锁或独占锁
		FileLock fl = fos.getChannel().tryLock();
		if(fl != null){
			System.out.println("Locked File");
			TimeUnit.MILLISECONDS.sleep(100);
			fl.release();
			System.out.println("Release Lock");
		}
		if(fos != null){
			fos.close();
		}
	}

}


你可能感兴趣的:(java)