工具类commons-io的Tailer用法,用来监控文件内容的变化情况
2014-06-02 17:01
363 查看
一、前言:在Linux下有使用tail命令
在Commons-io中也提供这种方法
二、他采用的是线程方式来监控文件内容的变化
1、Tailer类(采用线程的方式进行文件的内容变法)
2、TailerListener类
3、TailerListenerAdapter类,该类是集成了TailerListener的实现空的接口方式
三、测试使用代码
package com.yezi.leran.commons.io;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.io.input.Tailer;
import org.apache.commons.io.input.TailerListenerAdapter;
import java.io.File;
/**
* Created by yezi on 2014/6/2.
*/
public class TailerTest {
public static void main(String []args) throws Exception{
TailerTest tailerTest = new TailerTest();
tailerTest.test();
boolean flag = true;
File file = new File("C:/Users/yezi/Desktop/test/1.txt");
while(flag){
Thread.sleep(1000);
FileUtils.write(file,""+System.currentTimeMillis()+ IOUtils.LINE_SEPARATOR,true);
}
}
public void test() throws Exception{
File file = new File("C:/Users/yezi/Desktop/test/1.txt");
FileUtils.touch(file);
Tailer tailer = new Tailer(file,new TailerListenerAdapter(){
@Override
public void fileNotFound() { //文件没有找到
System.out.println("文件没有找到");
super.fileNotFound();
}
@Override
public void fileRotated() { //文件被外部的输入流改变
System.out.println("文件rotated");
super.fileRotated();
}
@Override
public void handle(String line) { //增加的文件的内容
System.out.println("文件line:"+line);
super.handle(line);
}
@Override
public void handle(Exception ex) {
ex.printStackTrace();
super.handle(ex);
}
},4000,true);
new Thread(tailer).start();
}
}
在Commons-io中也提供这种方法
二、他采用的是线程方式来监控文件内容的变化
1、Tailer类(采用线程的方式进行文件的内容变法)
2、TailerListener类
3、TailerListenerAdapter类,该类是集成了TailerListener的实现空的接口方式
三、测试使用代码
package com.yezi.leran.commons.io;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.io.input.Tailer;
import org.apache.commons.io.input.TailerListenerAdapter;
import java.io.File;
/**
* Created by yezi on 2014/6/2.
*/
public class TailerTest {
public static void main(String []args) throws Exception{
TailerTest tailerTest = new TailerTest();
tailerTest.test();
boolean flag = true;
File file = new File("C:/Users/yezi/Desktop/test/1.txt");
while(flag){
Thread.sleep(1000);
FileUtils.write(file,""+System.currentTimeMillis()+ IOUtils.LINE_SEPARATOR,true);
}
}
public void test() throws Exception{
File file = new File("C:/Users/yezi/Desktop/test/1.txt");
FileUtils.touch(file);
Tailer tailer = new Tailer(file,new TailerListenerAdapter(){
@Override
public void fileNotFound() { //文件没有找到
System.out.println("文件没有找到");
super.fileNotFound();
}
@Override
public void fileRotated() { //文件被外部的输入流改变
System.out.println("文件rotated");
super.fileRotated();
}
@Override
public void handle(String line) { //增加的文件的内容
System.out.println("文件line:"+line);
super.handle(line);
}
@Override
public void handle(Exception ex) {
ex.printStackTrace();
super.handle(ex);
}
},4000,true);
new Thread(tailer).start();
}
}
相关文章推荐
- org.apache.commons.io.IOUtils工具类快速读取文件内容
- 工具类commons-io的文件监控
- 工具类commons-io的Tailer用来监控文件
- Flume之监控文件内容变化
- Spark Streaming之:Flume监控目录下文件内容变化,然后Spark Streaming实时监听Flume,然后从其上拉取数据,并计算出结果
- 使用commons-io-2.0 API来实现监听文件变化
- 使用apache common-io 监控文件变化
- log4j FileWatchdog工具类,用来监控文件,如有变动就执行特定的操作
- spring boot +commons-io实现文件监控
- 利用commons-io.jar包中FileUtils和IOUtils工具类操作流及文件
- 监控文件变化情况,辅助课件上传情况核查
- 使用org.apache.commons.io.FileUtils,IOUtils;工具类操作文件
- 使用apache common-io 监控文件变化--转
- flume 1.7 新接口,监控文件内容变化,且监控目录内新增文件变化
- Java 文件监控,实时监控文件加载之Commons-io
- 读取文件内容到list (commons-io)
- Java 文件监控,实时监控文件加载之Commons-io
- 使用apache common-io 监控文件变化
- Java文件实时监控Commons-io
- 监控文件内容变化,即时写入到新文件(tail)