【问题标题】:How to check whether files are there or not continuously in Java? [duplicate]如何在Java中连续检查文件是否存在? [复制]
【发布时间】:2016-01-01 05:52:27
【问题描述】:

我打算制作一个程序来不断检查目录是否存在文件。如果没有,请等待一段时间(比如 5 分钟睡眠),然后再次检查目录。程序必须继续运行,不应结束。

我想过做一个多线程程序。但不知道我该如何实现它。如果还有其他选择,请告诉我。

【问题讨论】:

  • 多线程有什么好处?
  • 实际上,我们想在一个程序中完成 3 个作业。首先,读取文件。其次,根据我们的需要进行处理。最后一个是删除旧文件。

标签: java multithreading file file-io directory


【解决方案1】:

要实现此功能,称为文件更改通知,程序必须能够检测文件系统上相关目录发生的情况。这样做的一种方法是轮询文件系统以查找更改,但这种方法效率低下。它不适用于需要监控数百个打开文件或目录的应用程序。

java.nio.file 包提供了一个文件更改通知 API,称为 Watch Service API。此 API 使您能够向监视服务注册一个(或多个目录)。注册时,您告诉服务您感兴趣的事件类型:文件创建、文件删除或文件修改。当服务检测到感兴趣的事件时,它会被转发到注册的进程。注册的进程有一个线程(或线程池)专门用于监视它注册的任何事件。当有事件进来时,根据需要进行处理。

您可以通过创建监视服务并注册各种事件来做到这一点。更多详细信息,请访问Oracle tutorial doc

关于 SO here的类似问题

【讨论】:

    猜你喜欢
    • 2018-09-27
    • 2018-05-08
    • 1970-01-01
    • 1970-01-01
    • 2011-10-17
    • 1970-01-01
    • 2020-03-20
    • 2014-03-06
    • 1970-01-01
    相关资源
    最近更新 更多