java - 检测文件在 Java 中重新打开

标签 java multithreading file

我正在开发一个小型 Java 应用程序(Java 1.6、Solaris),它将使用多个后台线程来监视一系列文本文件以查找与特定正则表达式模式匹配的输出行,然后使用这些行。每个文件我有一个线程;他们将感兴趣的行写入队列,另一个后台线程仅监视队列以收集整个被监视文件集合中的所有感兴趣行。

我遇到的一个问题是当我正在监视的文件之一被重新打开时。许多创建我正在监视的文件的应用程序在重新启动时只会重新启动它们的日志文件;它们不会附加到已经存在的内容上。

我需要我的 Java 应用程序检测到该文件已重新打开并根据该文件重新启动。

我怎样才能最好地做到这一点?

最佳答案

你能记录下每个文件的长度吗?当当前长度随后变回零或小于您上次记录的长度时,您知道该文件已被应用重新启动?

关于java - 检测文件在 Java 中重新打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/138059/

相关文章:

java - 编译后的类文件在Java中保留了多少源代码信息?

Java SQL 数据库独立性

java - 不要保留 Activity 选项导致我的应用程序崩溃

java - 如何创建另一个 "version"的 process()

java - 如何迭代位于运行的 .jar 文件外部的文件夹

javascript - 读取文本文件的一部分,并将值以 ","分隔插入到数组中

java - 升级到 spring 4.1.6 后@JsonIgnore 不起作用

java - 使用 Swing 创建图像是线程安全的吗?

java - 在构造函数中设置 ThreadLocal 变量是否有效?

java - 如何在 scribe oauthrequest 中添加文件参数?