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