2016-05-31 67 views
4

检测文件写入或修改很容易,但我想不出一种检测文件读取的方法。这是场景。检测在Java中读取的文件

程序X(我无法控制)读取Sample.text并对其进行修改。应该注意的是,程序X在READ之后立即关闭流。

我要写一个程序来记录读取到修改Sample.txt的持续时间/时间。例如,程序X在5:00 PM读取Sample.txt并在7:25 PM修改它,所以总的持续时间为2小时25分钟。

是否有程序包或解决方法来检测程序X何时/如果Sample.txt被读取?请注意READ是我想要检测的应该为MODIFIED,因为java.nio.file可以检测文件修改。

+0

我会相当惊讶...如果这是可能的,除此之外,如果jvm能够提供这样的解决方案,那么这个解决方案在java上运行的平台上真正起作用。 – GhostCat

+0

这是用于生产环境还是用于调试?您的使用案例让我觉得您想知道为什么X程序在读取和修改之间需要很长的时间。如果我是对的,你需要的是一个分析器,而不是像WatchService这样的Java API(它确实不包含任何东西来观察读取)。 – Wis

+1

您可以在操作系统级别上编写自己的IO拦截器,就像防病毒并使用JNI调用它。不容易,但可能。但我真的认为你不需要这样的事情。 – user1516873

回答

0

我希望这可以帮助 -

  1. 跟踪文件中的节目X
  2. 读取时间总是存储在数据库中读取时间。
  3. 一旦文件被修改,找到记录的读取时间和修改时间之间的差异。