多线程Java轮询文本文件?
我正在尝试创建一个方法,只轮询特定目录中的文本文件。如果文本文件的大小发生变化,它将读取对其进行的最新输入。我相信我必须使用线程来实现这一点
到目前为止,我已经:
public boolean FileUpdated(File file) {
this.timeStamp = file.lastModified();
if (this.timeStamp != timeStamp) {
this.timeStamp = timeStamp;
//file is updated
return true;
}
//file is not updated
return false;
}
谁能给我指一下正确的方向吗
# 1 楼答案
您的假设是正确的,即池活动将需要一个单独的线程,但是,最好使用Timer线程,而不是使用标准线程,因为这会隐式地定期安排“FileUpdated”方法。为了使其工作,您还需要在TimerTask中放置或调用FileUpdated方法,例如:
}
}
您会注意到,我已将您的方法返回类型更改为void,因为您显然无法从TimerTask“run”方法的上下文中返回值,相反,您只需检查条件,然后在TimerTask线程本身中执行任何需要执行的工作,例如读取更新的文件