我在写一个程序,当有其它进程在读或者写某个文件时,就不再访问该文件。  用java如何实现?

解决方案 »

  1.   

    简单的可以写一个标志位flag 写程序时标志成1,写完标志成0下面判断每次flag==0时才能继续访问.
      

  2.   

    写之前要加锁,也就是sync块操作。读的话,可以加也可以不加
      

  3.   

    你可以用FileChannel判断一下
    FileChannel c = new FileInputStream("C:/1.xls").getChannel();
    c.tryLock();如果文件被锁定就会抛出NonWritableChannelException异常,但是如果是非锁定打开好像不会报错