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