我计划制作一个程序来继续检查目录是否存在文件。如果没有,那么等待一段时间(比如5分钟睡眠),然后再次检查目录。该程序必须继续运行,不应该结束。
我想过制作一个多线程程序。但是我不知道我究竟能够如何实现它。如果有其他选择,请告诉我。
答案 0 :(得分:0)
要实现此功能(称为文件更改通知),程序必须能够检测文件系统上相关目录的内容。一种方法是轮询文件系统以查找更改,但这种方法效率低下。它不会扩展到具有数百个要监视的打开文件或目录的应用程序。
java.nio.file包提供了一个名为Watch Service API的文件更改通知API。此API使您可以使用监视服务注册目录(或多个目录)。注册时,您告诉服务您感兴趣的事件类型:文件创建,文件删除或文件修改。当服务检测到感兴趣的事件时,它将被转发到注册的进程。已注册的进程有一个线程(或一个线程池),专门用于监视它已注册的任何事件。当一个事件进入时,它会根据需要进行处理。
您可以通过创建监视服务并注册各种事件来实现。更多细节可以在Oracle tutorial doc找到。
关于SO here
的类似问题