2016-10-13 4 views
-1

Ниже приведен тестовый класс Timertask, с которым я экспериментировал. В основном timertask смотрит, когда файл изменяется, а затем выполняет некоторые методы. Я хочу, чтобы сообщение было напечатано для пользователя, например: «Ожидание изменения файла», если программа timertask запущена. Где должна вводиться команда ?. Ниже мой код.Java - печатает сообщение до тех пор, пока работает 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

Что это означает, что 'TimerTask task = new FileWatcher' должен означать? – njzk2

+0

Это абстрактный класс, расширяющий TimerTask. В основном контролирует файл для даты изменения. – spry

+0

когда вы называете 'onChange'? – njzk2

ответ

0

Я предполагаю, что ваш FileWatcher расширяет TimerTask, что означает, что он реализует работать(). Вы можете поместить код внутри вашего метода выполнения, который будет печатать сообщение, если он не вызывает onChange().

+0

Я добавил команду печати в методе run, как было предложено. Он работает, но он также печатает еще один раз после остановки таймера. – spry

+0

Обнаружили ошибку. Печать была после цикла. Изменил его до цикла, и он работает сейчас. – spry

0

Печать была выполнена после цикла. Изменил его до цикла, и он работает сейчас.

Смежные вопросы