日期:2014-05-20  浏览次数:20643 次

j2se---nio---FileLock
FileLock对象的方法
public final FileLock lock() ; //获得此通道的文件的独占锁定
public abstract FileLock lock(long position,long size,boolean shared); 
//获得此通道文件给定区域的锁定,并制定锁定的位置,大小,是共享锁定(true)还是独占锁定(false)

public final FileLock tryLock(); //视图获得此通道的独占锁 --try get lock --并不一定能得到所哦
public abstract FileLock tryLock(long position,long size,boolean shared);
//视图获取此通道指定区域的锁定,并制定锁定位置,锁定大小,属于共享锁定(true)或者独占锁定(false)


class Test{
  public static void main(String[] args){
    File file = new File("d:"+File.separator+"a.txt");
    FileOutputStream output = new FileputStream(file);
    FileChannel fout = output.getChannel(); //得到通道
    FileLock lock = fout.tryLock(); //进行独占锁的操作,注意我们一般用tryLock,因为我们不能保证一定能得到锁
    if(lock !=null){
       //-------do something
       lock.release(); //释放
       System.out.println(file.getName()+" 文件解除锁定");
    }
    fout.close();
    output.close();
  }
}