import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class DynamicReadFile {
private SimpleDateFormat dateFormat =
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public int count;
public boolean started;
public boolean end;
/**
* 将信息记录到日志文件
* @param logFile 日志文件
* @param mesInfo 信息
* @throws IOException
*/
public void logMsg(File logFile,String mesInfo) throws IOException{
if(logFile == null) {
throw new IllegalStateException("logFile can not be null!");
}
Writer txtWriter = new FileWriter(logFile,true);
txtWriter.write(dateFormat.format(new Date()) +"\t"+mesInfo+"\n");
txtWriter.flush();
}
/**
* @param args
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
// System.out.print("");
final DynamicReadFile logSvr = new DynamicReadFile();
final File tmpLogFile = new File("/Users/tinnyair/Desktop/ChatViewController");
if(!tmpLogFile.exists()) {
tmpLogFile.createNewFile();
}
System.out.println("application start");
logSvr.count = 10;
//启动一个线程每5秒钟向日志文件写一次数据
final ScheduledExecutorService exec =
Executors.newScheduledThreadPool(1);
exec.scheduleWithFixedDelay(new Runnable(){
public void run() {
if (logSvr.count > 0) {
System.out.println("打印"+logSvr.count);
if (logSvr.count == 5) { 判断有文件生产,通过文件名
System.err.println("发现有文件生产");
logSvr.started = true;
}
// 每次都判断 tag是否大于,大于10 ,shutdown,return 打印失败
logSvr.count --;
} else {
if (logSvr.started) {
System.out.println("校验成功");
// 判断目录空了
exec.shutdown();
}
}
}
}, 0, 5, TimeUnit.SECONDS);
}
}