如何使用Java测试文件是否“完整”(完全写入)

假设您有一个外部进程将文件写入某个目录,并且有一个单独的进程定期尝试从该目录读取文件。要避免的问题是读取文件,表明其他进程当前正在写出该文件,因此该文件是不完整的。当前,读取的进程使用最小文件期限计时器检查,因此它将忽略所有文件,除非文件的最后修改日期早于XX秒。

我想知道是否有更干净的方法来解决此问题。如果文件类型未知(可能有多种不同的格式),是否存在某种可靠的方法来检查文件头以获取文件中应包含的字节数,而不是文件中当前包含的字节数以确认它们是否匹配?

感谢您的任何想法或想法!

回答:

您可以使用外部标记文件。写入过程可以在开始创建文件XYZ之前创建文件XYZ.lock,而在XYZ完成后删除XYZ.lock。这样,读者将很容易知道,仅当不存在相应的.lock文件时,它才可以认为文件已完成。

以上是 如何使用Java测试文件是否“完整”(完全写入) 的全部内容, 来源链接: utcz.com/qa/418147.html

回到顶部