ultraedit打开文件后,并没有锁住文件,仍然可以修改文件,而且文件修改完成之后,ultraedit马上就能知道。那java能否实现这个功能?难道是把文件内容读入缓存,然后释放文件锁,再循环检测文件是否被修改?

解决方案 »

  1.   

    把文件的 Stream 关掉就算是释放文件了。检测修改只是一个循环而已。
      

  2.   

    以只读方式打开,就不会产生互斥锁,修改的时侯,保存在临时文件,并以一定的频率刷新到原文件。
    java检测文件是否修改比较困难,不用JNI方法的,只能在程序激活的时侯轮询一下修改日期吧。
      

  3.   

    好像只能循环检测,ultraedit能做到不锁住文件是因为拷贝了一份,打开的拷贝的;
    另外ultraedit也不能马上知道文件被修改了,是在ultraedit重新获得焦点之后才知道的。