J2SE论坛网»J2SE技术»『提问』java中怎样监视某个文件变化?
『提问』java中怎样监视某个文件变化?
问?:
请问java中怎样监视某个文件变化?
答!: 1:
监视变化是什么意思?内容改变,还是删除,等等操作?
答!: 2:
文件内容变化,比如增加了等等
答!: 3:
重新说一下需求:
有个文本文件:test.txt ,有个程序随时都会往里面追加数据,我需要监视该文本文件,并于该程序写完数据后的空档时读取新追加的数据,请问怎么实现这个监听功能?
有个文本文件:test.txt ,有个程序随时都会往里面追加数据,我需要监视该文本文件,并于该程序写完数据后的空档时读取新追加的数据,请问怎么实现这个监听功能?
答!: 4:
起一个线程,去读取这个文件里面的内容,当内容有变化的时候,就可以做你想做的事了
还有,要记得线程同步问题
还有,要记得线程同步问题
答!: 5:
输出出来
答!: 6:
lbfhappy(千里冰封) 的思路是正确的~~~~~~~~~~~~~~~~~
答!: 7:
每次写完后,把这个文件(如 test.txt)的长度存到一个变量中(如 oldFileSize ),用一个线程来监控 test.txt 的大小,将之与 oldFileSize 作比较,如果有变化,则
RandomAccessFile raf = new RandomAccessFile("test.txt" , "wb");
raf.seek(oldFileSize);
File file = new File("c:/test.txt");
RandomAccessFile raf= new RandomAccessFile(file,"rw");
raf.seek(4);
byte[] buf = new byte[58];
int size = raf.read(buf);
String yourNeedStr = new String (buf, 0, size);
其中yourNeedStr中就是你想要的内容了.
RandomAccessFile raf = new RandomAccessFile("test.txt" , "wb");
raf.seek(oldFileSize);
File file = new File("c:/test.txt");
RandomAccessFile raf= new RandomAccessFile(file,"rw");
raf.seek(4);
byte[] buf = new byte[58];
int size = raf.read(buf);
String yourNeedStr = new String (buf, 0, size);
其中yourNeedStr中就是你想要的内容了.
答!: 8:
文件信息中有两个属性可以利用:文件尺寸,修改日期
答!: 9:
CSDN - 专家门诊 - Java J2SE / 扩展类问题
回复 | 推荐 | 收藏 | 专题 | 公告 | 管理 | 关闭窗口
主 题: 『提问』java中怎样监视某个文件变化?
作 者: gongzhy (2369)
等 级:
信 誉 值: 100
所属论坛: Java J2SE / 扩展类
问题点数: 20
回复次数: 8
发表时间: 2006-9-1 11:54:15
请问java中怎样监视某个文件变化?
回复人:fishyqd(小鱼儿-屯粮,接分) ( 四级(中级)) 信誉:100 2006-9-1 13:56:13 得分:0
?
监视变化是什么意思?内容改变,还是删除,等等操作?
Top
回复人:gongzhy(2369) ( 一级(初级)) 信誉:100 2006-9-1 13:59:50 得分:0
?
文件内容变化,比如增加了等等
Top
回复人:gongzhy(2369) ( 一级(初级)) 信誉:100 2006-9-1 14:18:30 得分:0
?
重新说一下需求:
有个文本文件:test.txt ,有个程序随时都会往里面追加数据,我需要监视该文本文件,并于该程序写完数据后的空档时读取新追加的数据,请问怎么实现这个监听功能?
Top
回复人:lbfhappy(千里冰封) ( 四级(中级)) 信誉:100 2006-9-1 14:48:48 得分:0
?
起一个线程,去读取这个文件里面的内容,当内容有变化的时候,就可以做你想做的事了
还有,要记得线程同步问题
Top
回复人:cuiyue4420(流畅) ( 一级(初级)) 信誉:100 2006-9-1 16:41:31 得分:0
?
输出出来
Top
回复人:lky5387() ( 一级(初级)) 信誉:100 2006-9-1 17:04:55 得分:0
?
lbfhappy(千里冰封) 的思路是正确的~~~~~~~~~~~~~~~~~
Top
回复人:dengy1979(笨笨) ( 一级(初级)) 信誉:100 2006-9-1 18:30:25 得分:0
?
每次写完后,把这个文件(如 test.txt)的长度存到一个变量中(如 oldFileSize ),用一个线程来监控 test.txt 的大小,将之与 oldFileSize 作比较,如果有变化,则
RandomAccessFile raf = new RandomAccessFile("test.txt" , "wb");
raf.seek(oldFileSize);
File file = new File("c:/test.txt");
RandomAccessFile raf= new RandomAccessFile(file,"rw");
// raf.seek(4); // 上面答复中的此句应去掉,只是我测试时用的
byte[] buf = new byte[1024];
int size = raf.read(buf);
String yourNeedStr = new String (buf, 0, size);
其中yourNeedStr中就是你想要的内容了.
答!: 10:
还要考虑一个问题,假设该文件为一个日志文件,有一天被人清空了,怎么处理啊?
还有设置一个point文件指针,但程序异常结束或人为结束,point不就又从头开始了
还有设置一个point文件指针,但程序异常结束或人为结束,point不就又从头开始了
答!: 11:
你不就要监控文件是否发生变化吗? 被清空就被清空.更多的目的你也没说,被清空和你有什么关系?
设置指针? 和监控有什么关系?
另外,监视文件尺寸不准,因为修改后的文件也很可能是同样的尺寸.所以监视文件最后修改时间是最准的,除非被人故意改写这个时间为固定时间.
设置指针? 和监控有什么关系?
另外,监视文件尺寸不准,因为修改后的文件也很可能是同样的尺寸.所以监视文件最后修改时间是最准的,除非被人故意改写这个时间为固定时间.
答!: 12:
我觉得还是用一个线程记录下修改日期吧。然后不定期的读取修改日期,比较一下有没有改变
相关JAVA教程:
请问java如何定义一个无符号类型的变量啊
菜鸟简单问题 急急 分不够再加
怎样在其他页面引用一个input,急用
<jsp:include>与forward的问题,知者告之,不甚感激!
JavaMail怎么阅读收条
我想问下现在我想做个程序员都要掌握什么技术
现在在公司都用什么方式编程mvc结构吗
百思不得其解,请高手指教!
请帮忙看一段代码
linux中Runtime.exec(cmd)只要cmd中带|grep的都不能取得InputStream,为什么?
用javascript验证数据类型??
我是个初学者,大家帮我分析这段代码