java读取某个目录是否有新增文件(轮询)

使用 commons-io 中的文件监控

jar包:

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();
    }
}
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());
    }
}
时间: 2024-10-10 18:21:44

java读取某个目录是否有新增文件(轮询)的相关文章

Java读取指定目录下的所有文件(子目录里的文件也可递归得到)

1 import java.io.File; 2 3 public class ReadFile { 4 5 public static void main(String[] args) { 6 7 // path是指定目录的绝对路径 8 String path = "/Users/tonychan/Workspaces/MyEclipse 2017 CI/Zhangjiajie/WebRoot/pics"; 9 getFile(path); 10 11 } 12 13 // 给定目录

Java API 读取HDFS目录下的所有文件

/** * 获取1号店生鲜食品的分类id字符串 * @param filePath * @return */ public String getYHDSXCategoryIdStr(String filePath) { final String DELIMITER = new String(new byte[]{1}); final String INNER_DELIMITER = ","; // 遍历目录下的所有文件 BufferedReader br = null; try { F

java 读取固定目录下的文件(和上篇差点儿相同)

package gao.org; import java.io.FileNotFoundException; import java.io.IOException; import java.io.File; public class ReadFile { public ReadFile() { } /** * 读取某个目录下的全部文件 */ public static boolean readfile(String filepath) throws FileNotFoundException,

Android开发系列(十七):读取assets目录下的数据库文件

在做Android应用的时候,不可避免要用到数据库.但是当我们把应用的apk部署到真机上的时候,已经创建好的数据库及其里边的数据是不能随着apk一起安装到真机上的. (PS:这篇博客解决了我前面博客中写的一个小游戏的一个问题,另外也可以读取Raw目录下的数据库文件) 这就造成了一个问题,这个问题其实很好解决,解决方法如下: 我们首先把有数据的数据库文件放在assets资源目录下边,然后在apk应用启动的时候,把assets目录下的数据库文件的数据写入到真机的内存中去. 下边开始我们的代码编写:

JAVA读取Oracle数据库BLOB字段数据文件并保存到本地文件

******JAVA读取Oracle数据库BLOB字段数据文件并保存到本地文件****** package com.bo.test; import java.io.FileOutputStream; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import

java读取某个目录下所有文件并通过el表达式将相关文件信息展示出来,js提供页面搜索及查看下载功能

从服务器上读取某个目录下的文件  将文件名 文件修改日期   及文件 大小展示在前台  并可以查看及下载 第一步:读取文件目录下的文件,并将文件按时间由大到小排列 public ArrayList<File> getLogs() { // TODO Auto-generated method stub ArrayList<File>  tomcatLogs = new ArrayList<File>(); File path = new File(""

Java 读取指定目录下的文件名和目录名

需求:读取指定目录下的文件名和目录名 实现如下: package com.test.common.util; import java.io.File; public class ReadFile { /* * 读取指定路径下的文件名和目录名 */ public void getFileList() { File file = new File("D:\\"); File[] fileList = file.listFiles(); for (int i = 0; i < file

[Java 8] 列举目录下的所有文件和监视文件变化

列举目录中的所有文件 首先给出代码: Files.list(Paths.get(".")).forEach(System.out::println); Files.list方法得到的是一个Stream类型的对象,它代表了目标路径下所有的文件.如果只想获取目标路径下的所有目录文件: Files.list(Paths.get(".")) .filter(Files::isDirectory) .forEach(System.out::println); 在以前的Java

Java读取CSV数据并写入txt文件

读取CSV数据并写入txt文件 package com.vfsd; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import com.csvreader.CsvReader; /****************************************************************************