Java - 只要TimerTask正在运行,就打印消息

时间:2016-10-13 20:58:17

标签: java timertask

下面是我一直在试验的测试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);
}
    }

2 个答案:

答案 0 :(得分:0)

我假设您的FileWatcher扩展了TimerTask,这意味着它实现了run()。您可以将代码放在run方法中,如果它没有调用onChange(),则会打印一条消息。

答案 1 :(得分:0)

印刷是在循环之后。将其更改为循环之前,它现在可以正常工作。