下面是我一直在试验的测试Timertask类。基本上,timertask监视文件何时更改然后执行某些方法。我希望向用户打印一条消息,例如"等待文件更改发生"只要timertask正在运行。命令应该输入到哪里?以下是我的代码。
谢谢!
public class FileWatcherTest {
static int count = 3;
static int i = 0;
public static void main(String[] args) {
final Timer timer = new Timer();
System.out.println("Starting Timer " + timer.toString());
TimerTask task = new FileWatcher(new File("c:/temp/text.txt")) {
protected void onChange(File file) {
i++;
System.out.println("Executing iteration " + i);
System.out.println("File " + file.getName() +
" have change !");
// code to cancel timer
if (i >= count) {
System.out.println("Finished Iterations");
System.out.println("Stopping Timer");
timer.cancel();
System.out.println("Stopped Timer");
} else {
}
}
};
// repeat the check every second
timer.schedule(task, new Date(), 1000);
}
}
答案 0 :(得分:0)
我假设您的FileWatcher扩展了TimerTask,这意味着它实现了run()。您可以将代码放在run方法中,如果它没有调用onChange(),则会打印一条消息。
答案 1 :(得分:0)
印刷是在循环之后。将其更改为循环之前,它现在可以正常工作。