用java读取某个目录是否有新增文件

如何用java编写servelet程序自动读取某个目录是否有新增(.txt)文件,如果有该文件内容存储到数据库。
最好“目录”、“间隔时间”为作为参数可设置。

1个回答

使用 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;

/**

  • 文件监控测试
  • @author
  • @date 2010-11-16
  • @file org.demo.file.FileMonitor.java
    */
    public class FileMonitorTest {

    /**

    • @param args
    • @throws Exception */ public static void main(String[] args) throws Exception { // 监控目录 String rootDir = "d:\Temp"; // 轮询间隔 5 秒 long interval = TimeUnit.SECONDS.toMillis(5); // FileAlterationObserver observer = new FileAlterationObserver( rootDir, FileFilterUtils.and( FileFilterUtils.fileFileFilter(), FileFilterUtils.suffixFileFilter(".java")), null); observer.addListener(new MyFileListener()); FileAlterationMonitor monitor = new FileAlterationMonitor(interval,observer); // 开始监控 monitor.start(); } }[/code] [code="java"]package org.demo.file;

import java.io.File;
import org.apache.commons.io.monitor.FileAlterationListenerAdaptor;

/**

  • 自定义文件监听器
  • @author
  • @date 2010-11-16
  • @file org.demo.file.MyFileListener.java */ public class MyFileListener extends FileAlterationListenerAdaptor{ @Override public void onFileCreate(File file) { System.out.println("[新建]:" + file.getAbsolutePath()); } @Override public void onFileChange(File file) { System.out.println("[修改]:" + file.getAbsolutePath()); } @Override public void onFileDelete(File file) { System.out.println("[删除]:" + file.getAbsolutePath()); } }[/code]
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问