Java 文件锁定

概要:

Java文件锁定

通过FileLock类实现文件锁定。文件锁定可以是独占也可以是共享。共享锁定可阻止其他并发运行的程序获取重叠的独占锁定,但是允许该程序获得重叠的共享锁定。独占锁定则阻止其他程序获取任一类型的重叠锁定。一旦释放某个锁定,它就不会再对其他程序所获取的锁定产生任何影响。

可以通过锁定的isShared()方法确定是独占还是共享。

| |目录

代码

package net.xsoftlab.baike;

import java.io.FileOutputStream;
import java.nio.channels.FileLock;

public class TestLockFile {

	// 锁定文件
	public static void fileLock(String file) {
		FileOutputStream fous = null;
		FileLock lock = null;
		try {
			// 创建文件输出流
			fous = new FileOutputStream(file);
			// 锁定文件
			lock = fous.getChannel().tryLock();
			// 本线程锁定1分钟,期间任何程序对该文件的写操作将被禁止
			Thread.sleep(60 * 1000);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if (lock != null)
					// 锁释放
					lock.release();
				if (fous != null)
					fous.close();
			} catch (Exception e) {
				System.out.println("出现异常");
				System.exit(1);
			}
		}
	}

	public static void main(String[] args) {
		String file = "D:/poem.txt";
		System.out.println("锁定文件中...");
		// 调用方法锁定文件
		fileLock(file);
	}
}


评论关闭
评论 还能输入200
评论关闭
评论 还能输入200
资料加载中...
已关注 , 取消