如题,现在要用java实现监控一个文件夹新增的文件(如一个txt文件,有几个字符),本人使用JNotify可以实现文件夹监控,即该txt文件新增至监控文件夹内,后台提示路径跟文件名,现想取文件中的数据,提示另外的程序正在使用,进程无法访问。请问大家有实现的吗?或者使用其他插件实现也可以?如何在新文件进入得到路径名称后取消对该文件的监控?
使用 commons-io 中的文件监控
[code="java"]package org.demo.file;
import java.util.concurrent.TimeUnit;
import org.apache.commons.io.filefilter.FileFilterUtils;
import org.apache.commons.io.monitor.FileAlterationMonitor;
import org.apache.commons.io.monitor.FileAlterationObserver;
/**
@file org.demo.file.FileMonitor.java
*/
public class FileMonitorTest {
/**
import java.io.File;
import org.apache.commons.io.monitor.FileAlterationListenerAdaptor;
/**
是不是在程序中读完文件后没有释放资源?如果不释放的话就会一直占用文件出现被锁的情况。
[code="java"] BufferedReader buf = null;
try {
buf = new BufferedReader(new FileReader(file));
System.out.println(buf.readLine());
} catch (IOException e) {
e.printStackTrace();
} finally {
// 这里释放系统 IO 资源
try {if (buf != null){buf.close();}}catch (Exception e){}
}[/code]