好久没有写博客了,最近一直没有时间,所以补一个博客,前一段时间公司有个项目需要通过sftp的方式往服务器上传txt文件,而且时间都不确定,还需要读txt文件,所以我就写了一个监听,监听文件夹,如果又文件上传过来,就会立即收到,废话不说,直接上代码,
首先maven依赖
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
主要是借助这个工具中的 FileAlterationObserver, FileAlterationListener, FileAlterationMonitor 三个类来实现相关的需求场景了,当然使用也算是很简单了,以至于都不太清楚可以再怎么去说明了,直接看下面从我的一个开源项目quick-alarm中拷贝出来的代码
/**
* @description 监听文件夹中文件的变化 ,如果又新加的文件就会监听出来
* @author myhb
*/
@Slf4j
@Component
public class PropertiesConfListenerHelper {
@PostConstruct
public static void initFileMonitor() {
// 监控目录
String rootDir = "F:\\test";
// 轮询间隔 20 秒
Integer time = 20;
long interval = TimeUnit.SECONDS.toMillis(time);
// 创建一个文件观察器用于处理文件的格式,
// FileFilterUtils.suffixFileFilter(".txt")
FileAlterationObserver _observer = new FileAlterationObserver(
rootDir,
FileFilterUtils.and(
FileFilterUtils.fileFileFilter()), //过滤文件格式
null);
FileAlterationObserver observer = new FileAlterationObserver(rootDir);
observer.addListener(new FileListener(