java - 查找两个大文件的差异
问题描述
我想计算文件差异。并且文件可能非常大,例如 25 MB。
我的想法是按部分计算文件,例如首先比较前 1000 个字节,然后比较第二个 1000 个字节,依此类推。
Java-Diff-Utils(或其他)是否支持按部分计算差异,这意味着它需要存储状态并且不将第二个 1000 字节视为新文件?
我怎样才能让它也存储行号?谢谢!
编辑:文件是txt文件格式。
解决方案
您需要提供更多信息。例如,你想比较什么样的文件,是否有时间限制,你是否在使用 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),似乎两个块本质上是两个文件。但即使是这样,您也应该能够覆盖该行为(因为它是开源的)。
推荐阅读
- python - 在 Pytorch 中为模型注册参数的正确方法
- android - 华为In App Purchase沙盒测试,我已经购买过一次的商品无法购买
- qt - 在 qml 中将 a 添加到 Gradient Stop 时的奇怪行为
- google-cloud-platform - 使具有私有 IP 连接的 GCP Cloud SQL 等效于 Cloud SQL 代理
- vue.js - 在vue中将隐藏的div转换为pdf
- html - 使用 CSS 从表格的第二行替换行颜色
- python - 按条件列表刮取数据排序
- python - 如何多次打印存储在变量中的 map() 对象结果?
- python - 如何处理内存错误:用于做解码器
- c# - 到 Azure ACI 的基本容器化 ASP.NET 3.1 Core 应用部署失败