我正在开发一个小型 Java 应用程序(Java 1.6、Solaris),它将使用多个后台线程来监视一系列文本文件以查找与特定正则表达式模式匹配的输出行,然后使用这些行。每个文件我有一个线程;他们将感兴趣的行写入队列,另一个后台线程仅监视队列以收集整个被监视文件集合中的所有感兴趣行。
我遇到的一个问题是当我正在监视的文件之一被重新打开时。许多创建我正在监视的文件的应用程序在重新启动时只会重新启动它们的日志文件;它们不会附加到已经存在的内容上。
我需要我的 Java 应用程序检测到该文件已重新打开并根据该文件重新启动。
我怎样才能最好地做到这一点?
最佳答案
你能记录下每个文件的长度吗?当当前长度随后变回零或小于您上次记录的长度时,您知道该文件已被应用重新启动?
关于java - 检测文件在 Java 中重新打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/138059/