import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Timer;
import java.util.TimerTask; public class FileListener {
public static void main(String[] args) {
FileListener fileListener = new FileListener();
fileListener.timer = new Timer(true);
fileListener.start();
} private Timer timer; private long currentTime = -1; private long lastModifiedTime = -1; private long times = 1; private long pollingInterval = 1000 * times; private String filePath = "c:\\test.txt"; public FileListener() {
File file = new File(filePath);
lastModifiedTime = file.lastModified();
currentTime = lastModifiedTime;
} public void start() {
timer.schedule(new FileMonitor(), 0, pollingInterval); while (true) {
try {
int ch = System.in.read();
System.out.println("ch=" + ch);
if (ch - 'c' == 0) {
System.out.println("quit");
timer.cancel();
break;
}
} catch (Exception e) {
e.printStackTrace();
}
}
} private class FileMonitor extends TimerTask {
public void run() {
File file = new File(filePath);
lastModifiedTime = file.exists() ? file.lastModified() : -1;
if (currentTime != lastModifiedTime) {//
String string = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS")
.format(lastModifiedTime);//
System.out.println("File changed At:" + string);
currentTime = lastModifiedTime;
}
}
} }