import java.io.File;
import java.io.RandomAccessFile;
import java.nio.channels.FileChannel;
import java.nio.channels.FileLock;
public class AccessFile
{
RandomAccessFile ra=new RandomAccessFile(new File("E:\\luo.txt"),"rw");
FileChannel fc=ra.getChannel();
FileLock fl=fc.tryLock();//它总是显示这句有错,到底错在哪里????
if(fl.isValid())
{
System.out.println("允许执行读写操作");
fl.release();//解锁
}
else
{
System.out.println("其他用户正在执行读写操作");
}
   }
}

解决方案 »

  1.   

    class AccessFile
    {
    public void a() throws IOException
    {
    RandomAccessFile ra=new RandomAccessFile(new File("E:\\1.txt"),"rw");
    FileChannel fc=ra.getChannel();
    FileLock fl=fc.tryLock();//它总是显示这句有错,到底错在哪里????
    if(fl.isValid())
    {
    System.out.println("允许执行读写操作");
    fl.release();//解锁
    }
    else
    {
    System.out.println("其他用户正在执行读写操作");
    }
    }

    }
    放在方法里面
      

  2.   


    //代码好跑了
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.RandomAccessFile;
    import java.nio.channels.FileChannel;
    import java.nio.channels.FileLock;
    public class AccessFile{
    public static void main(String[] args){
    try {
    RandomAccessFile ra=new RandomAccessFile(new File("E:\\luo.txt"),"rw");
    FileChannel fc=ra.getChannel();
    FileLock fl=fc.tryLock();//它总是显示这句有错,到底错在哪里????
    if(fl.isValid()){
    System.out.println("允许执行读写操作");
    fl.release();//解锁
    }else{
    System.out.println("其他用户正在执行读写操作");
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }
      

  3.   

    不过,最好还是,加个finally 释放资源。