首页 > 解决方案 > 查找两个大文件的差异

问题描述

我想计算文件差异。并且文件可能非常大,例如 25 MB。

我的想法是按部分计算文件,例如首先比较前 1000 个字节,然后比较第二个 1000 个字节,依此类推。

Java-Diff-Utils(或其他)是否支持按部分计算差异,这意味着它需要存储状态并且不将第二个 1000 字节视为新文件?

我怎样才能让它也存储行号?谢谢!

编辑:文件是txt文件格式。

标签: javadiff

解决方案


您需要提供更多信息。例如,你想比较什么样的文件,是否有时间限制,你是否在使用 Java-Diff-Utils 时遇到了问题。如果没有,以下只是一个想法:

如果您查看专业的 diff 工具,我通常使用 winmerge ( https://winmerge.org ),它们有不同的方法来处理不同类型的文件。因此,具有不同标签顺序的 XML 或 CSV 或 json 仍然是具有相同信息的文件。如果您想与非结构化文件(例如 .txt)进行比较,则 java-diff-utils 是否将块视为同一文件并不重要。否则,您将不得不担心它。

根据他们的帮助页面和示例(https://github.com/java-diff-utils/java-diff-utils/wiki/Examples),似乎两个块本质上是两个文件。但即使是这样,您也应该能够覆盖该行为(因为它是开源的)。


推荐阅读