apache-common-io的文件监听问题
import java.io.File;
import java.io.FileFilter;
public class FileFilterImpl implements FileFilter {
public boolean accept(File pathname) {
System.out.println("file_filter: "+pathname);
return false;
}
}适配器代码
import java.io.File;
import org.apache.commons.io.monitor.FileAlterationListenerAdaptor;
import org.apache.commons.io.monitor.FileAlterationObserver;
public class FileListenerAdaptor extends FileAlterationListenerAdaptor {
@Override
public void onStart(FileAlterationObserver arg0) {
System.out.println("begin listening!");
super.onStart(arg0);
}
@Override
public void onStop(FileAlterationObserver arg0) {
System.out.println("end listening!");
super.onStop(arg0);
}
@Override
public void onDirectoryCreate(File fold) {
System.out.println("fold: " + fold.getAbsolutePath() + " is created.");
super.onDirectoryCreate(fold);
}
@Override
public void onDirectoryChange(File fold) {
System.out.println("fold: " + fold.getAbsolutePath() + " is changed.");
super.onDirectoryChange(fold);
}
@Override
public void onDirectoryDelete(File fold) {
System.out.println("fold: " + fold.getAbsolutePath() + " is deleted.");
super.onDirectoryDelete(fold);
}
@Override
public void onFileCreate(File file) {
System.out.println("file: " + file.getAbsolutePath() + " is created.");
super.onFileCreate(file);
}
@Override
public void onFileChange(File file) {
System.out.println("file: " + file.getAbsolutePath() + " is changed.");
super.onFileChange(file);
}
@Override
public void onFileDelete(File file) {
System.out.println("file: " + file.getAbsolutePath() + " is deleted");
super.onFileDelete(file);
}
}import java.io.File;
import org.apache.commons.io.monitor.FileAlterationMonitor;
import org.apache.commons.io.monitor.FileAlterationObserver;
public class FileListenerTest {
public static void main(String[] args) {
try {
// 构造观察类主要提供要观察的文件或目录,当然还有详细信息的filter
FileAlterationObserver observer = new FileAlterationObserver(
new File("e:\\test1"), new FileFilterImpl(),null);
// 构造收听类
FileListenerAdaptor listener = new FileListenerAdaptor();
// 为观察对象添加收听对象
observer.addListener(listener);
// 配置Monitor,第一个参数单位是毫秒,是监听的间隔;第二个参数就是绑定我们之前的观察对象。
FileAlterationMonitor fileMonitor = new FileAlterationMonitor(
5000, new FileAlterationObserver[] { observer });
// 启动开始监听
fileMonitor.start();
} catch (Exception e) {
System.out.println("监听启动失败!");
e.printStackTrace();
}
}
}目录 e:\\test1 下只有一个文件,但首次启动时会扫描两次该目录,然后才会正常5秒扫描一次,怎么才能首次启动只调用一次
public boolean accept(File pathname); 方法呢。
...全文
相关推荐
common-io监听文件夹并发送rabbitmq
标题中的“common-io监听文件夹并发送rabbitmq”是指使用Java的Apache Commons IO库来监控一个文件夹的变化,一旦文件夹内有文件新增、修改或删除等事件发生,就会触发相应的处理逻辑
Java 文件监控,实时监控文件加载
为了解决这些问题,开发者通常会借助第三方库,如`org.apache.commons.io.monitor.FileAlterationObserver`(Apache Commons IO)或者`com.google.common.io.Files
common-io.jarcommon-io.jar
`org.apache.commons.io.monitor`: 提供了文件系统监控的功能,可以监听文件或目录的变化,并触发回调事件。5.
common-io,common-net打包奉送
Apache Commons IO库(common-io)是一个专注于I/O操作的实用工具集,提供了大量的静态方法来处理文件、流、过滤器、读写操作等。其中包含的功能有:1.
common-io範例程式
common-io範例程式"是针对这个库的一些示例代码,旨在帮助开发者更好地理解和运用这个库。


Java SE
