import java.io.*; import java.nio.channels.*; /**  * 锁住文件(不让其它线程或进程修改)  *  * @author kingfish  */ public class LockFile {   public LockFile() {   }   public static void main(String[] args) throws Exception {     RandomAccessFile raf = new RandomAccessFile(new File("c:\\test.txt"), "rw");     FileChannel fc = raf.getChannel();     FileLock fl = fc.tryLock();     if (fl.isValid()) {       System.out.println("get the lock!");       //测试线程       new Thread() {         public void run() {           while (true) {             try {               Thread.sleep(100);               FileReader fr = new FileReader(new File("c:\\test.txt"));               int c;               while ( (c = fr.read()) != -1) {                 System.out.println( (char) c);               }               fr.close();               break;             }             catch (Exception e) {               System.out.println(e);             }           }         }       }.start();       //模拟其它操作的耗时:比如用notepad打开无法修改。但是用程序来读写此文件都会异常       raf.write("kingfish(八百里秦川@龙城异客)".getBytes());       Thread.sleep(5000);       fl.release();       System.out.println("release the lock!");     }     raf.close();   } }
   
 
  |