package com.softeem.len5;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Scanner;
//主线程接受键盘输入,子线程每1秒钟一次,判断指定的某个目录
//下的某个文件是否被修改,如果被修改,就在Console上打印出
//“File changed…”
public class ThreadUpdateFileDemo extends Thread{
public long time;//记录文件最后修改的时间
public File file;
public ThreadUpdateFileDemo(){
file=new File("c:/文件夹/a.txt");//初始化file对象
time=file.lastModified();//初始化最后修改的时间
}
//线程体方法
public void run(){
while(true){
try {
Thread.sleep(1000);//暂停一秒
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} //上一次最后被修改的时间 != 当前文件最后修改的时间
if (time!=file.lastModified()) {//判断文件被修改
System.out.println("文件被修改!");
//再将最后修改的时间赋值给time
time=file.lastModified();
}
}
}
public static void main(String[] args) throws IOException {
ThreadUpdateFileDemo tuf=new ThreadUpdateFileDemo();
tuf.start();//开启线程
//接收键盘输入的内容
InputStream in=System.in;
//创建缓存空间
byte [] buff=new byte[1024];
int len=0;
//将in对象的内容读取到buff中
while ((len=in.read(buff))!=-1) {//这里的read有阻塞的作用
FileOutputStream out=new FileOutputStream("c:/文件夹/a.txt",true);
out.write(buff, 0, len);
out.close();
}
}
}