要每隔10sec读取一个文件,尽管在程序运行过程中对文件内容进行了修改,但是我每次读到的都是一样的,请问这该怎么办?该如何使得每次读到的都是最新的内容呢?
急~~谢谢~~

解决方案 »

  1.   

    写的线程得到最新文件修改时间:
    参考这里:http://www.google.com/search?hl=en&source=hp&biw=1276&bih=691&q=java%E6%96%87%E4%BB%B6%E7%9B%91%E8%A7%86&aq=f&aqi=g2&aql=f&oq=
    当然,如果有其它程序对它进行操作,一定要保存,不然是检测不到的。
      

  2.   

    考虑一下这个场景:
    在win下,你用记事本和UE同时打开一个文本文件,然后用记事本修改它并保存,这时UE会提示你文件被改了要不要重新加载?基本每个人都遇到过这种情况。回到你的问题:每次读取文件之前,获取一把文件的修改时间并临时保存起来。下次再读取文件的先读出它的修改时间并与上次保存的值比较。如果一样说明没改,你直接读下去。如果改了,把“文件指针”reset到文件头重新读取(或者你先关闭文件流再重新打开,不过不可取,重复打开文件的操作很慢)。File类有个lastModify之类的方法可以判断最后修改时间
      

  3.   

    每次读取文件内容的时候,都要重新创建
    File对象、FileInputStream对象、IO对象。
    使用完了进行关闭。
    其他应该没啥问题。
      

  4.   

    当修改文本之后,建议重新创建一下文件对象!
    另外,注意flush和close