日期:2014-05-20  浏览次数:20787 次

java读文件
写一个函数,第一次读取文件的全部内容,后面如果文件有变化,从新增的内容开始读取。

------解决方案--------------------
首先你要确认你的文件只会在尾部追加,而不改变前面的内容,也不在前面插入内容,否则这个讨论就没有意义了。

需要两个记录值,上次读文件时文件的更新时间,上次读文件时文件的大小。

程序启动后,轮询文件的更新时间是否已经被更改,如果是从上次文件的大小处读文件,然后修改上面的两个记录值,继续轮询
------解决方案--------------------
不用判断行数,判断文件的修改时间和大小就可以了,每次都取行数太费时间了。
------解决方案--------------------
File f = new File( "c:\\a.log ");
// 上次操作时文件的修改时间。
long lastupdatetime = 0;
// 上次操作时文件的大小。
long lastlength = 0;
// 从存储中获得上面两个值。
...

if (lastupdatetime != f.lastModified() || lastlength != f.length()) {
// 把输入移到上次读的未知开始读。
}