【发布时间】:2013-11-14 01:08:51
【问题描述】:
我知道可以检测文件的更改,例如使用 Linux inotify 服务或 Java 7 WatchService 之类的东西。
但是,我想做的不仅是检测文件是否已更改,还要检测文件中发生更改的位置。
我认为没有任何现有的操作系统服务或本地语言 API 可以实现这一点(也许我错了),所以我想知道是否有人可以提供任何建议。
例如,让我们从一个 1MB 的文件开始,它可以在任何给定的文件偏移量处随机更改。任何人都可以就尝试监视文件的更改以及确定文件中发生更改的位置提供任何建议。
任何意见或建议将不胜感激。
谢谢
【问题讨论】:
-
不要认为
java.io或操作系统提供任何类似的服务。您必须阅读并比较整个文件。也许将文件分成多个段并比较 md5sum 摘要会是吸气剂。 -
难道不需要保存一份文件副本,可以与更改后的文件进行比较,看看有什么不同吗?
-
如何检查你的文件到 git 并在你想知道它是否改变时执行
git status?git diff会告诉你具体发生了什么变化——假设它是一个文本文件 -
我猜 git 只能对文本文件执行此操作,而不是二进制文件?
标签: java file monitoring inotify