我想知道文件更改时的内容
有一个simeple txt文件
textOne 1,2,3,4,5,6,7,8,9,10
我将其更改为
textTwo 1,2,3,4,7,7,7,8,9,10
所以'一个'和' 5,6'改为' 2' 7,7'
我可以通过循环找到改变的东西。但我想知道是否有更好的方法来检查
答案 0 :(得分:5)
而不是循环使用标准的第三方库,只需要很小的优化。
我过去使用的其中一个库是Go port of google-diff-match-patch(@Not_a_golfer在评论中建议的库。)。
您可以通过首先计算两个文件的sha2
哈希来优化它,如果它们不相同,您可以假设它们已更改,否则(可能)它们是相同的,并跳过diff操作。
这种优化的一个缺点是,由于鸽子洞原理,理论上可能对于不同的内容具有相同的散列值。但是,发生的可能性非常小。
编辑(基于@ elithrar的评论):
由于计算非常大的文件的哈希值,可能很耗时。您可以计算块中的sha2
(大小取决于sha2
系列中的特定哈希算法)。这使您能够尽早摆脱困境,并提高速度。