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

时间:2018-01-14 21:09:33

标签: java multithreading apache-commons-io

我编写了一个监听给定文件夹的应用程序,然后记录事件并写入数据库(操作类型,文件名,内容,日期)。 我将应用程序基于Producer Consumer模式并使用了ArrayBlockingQueue。

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

error

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

感谢所有答案

1 个答案:

答案 0 :(得分:0)

您无法删除该文件,因为在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;
}