Timer FileListener
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) {//1439540671443
String string = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS")
.format(lastModifiedTime);//1439540994156
System.out.println("File changed At:" + string);
currentTime = lastModifiedTime;
}
}
}
}