目录侦听器 z Commons IO - 无法完成操作

Directory Listener z Commons IO - action can't be completed

我编写了一个应用程序来侦听给定的文件夹,然后记录事件并写入数据库(操作类型、文件名、内容、日期)。 我的应用程序基于生产者消费者模式并使用了 ArrayBlockingQueue。

我有这种类型的问题,当我在这个文件夹中添加一个文件,然后我想删除或修改它(这只适用于在这个文件夹中创建的第一个文件)它弹出

这是一回事,我想在 DbWriter 中(以某种方式)跳过另一件事,但我不知道该怎么做。

感谢大家的回答

你不能删除文件,因为在FileProcessor.getContent中你创建了一个FileReader并且没有关闭它,这会导致JVM锁定文件。要解决此问题,只需在使用后关闭FileReader,如下所示:

public static String getContent (File file) throws IOException {
    FileReader fileReader = new FileReader(file);
    String content = IOUtils.toString(fileReader);
    fileReader.close();
    return content;
}