每1秒钟一次,判断指定的某个目录下的某个文件是否被修改,如果被修改, 就在Console上打印出“File changed…”
这题调用了File类的lastModified()方法获得文件最后一次修改的时间;
Thread的sleep(1000)方法让该线程睡1秒。
import java.io.File;
import java.util.Date;
/**
* @author $KangMiao$
* 1.每1秒钟一次,判断指定的某个文件是否被修改,如果被修改,
* 就在Console上打印出“File changed…”和最后修改时间
*/
public class JudgeChanged{
private String infile;
boolean flag = true;
public JudgeChanged(String infile) {
super();
this.infile = infile;
}
public void run() {
File file = new File(infile);
while (flag) { //一直监视
try {
long s1 = file.lastModified();
Thread.sleep(1000);
long s2 = file.lastModified();
Date date2 = new Date(s2);
if (s1 != s2) { //判断一秒钟前后的最后修改时间是否相等
System.out.println("File changed-------");
System.out.println("修改时间为:"+date2);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
JudgeChanged jc = new JudgeChanged("E:/peixun/Tet.txt");
System.out.println("监听文件是否被修改·······");
jc.run();
}
}