每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();
- }
- }