所以我正在阅读 delta encoding ,我正在四处寻找它的一些很好的例子。我认为谷歌浏览器使用类似的补丁更新,rsync可能,维基百科文章暗示很多在线备份工具都使用它。
我很好奇是否有任何优秀的 Java 库可以完成此类工作?似乎有大量 *nix 和基于 C 的工具,但很少或根本没有 Java 等效工具,它们的功能远不止压缩数据结构。
无论如何,这对我来说都是一个全新的概念,所以我很想阅读有关它的任何内容,特别有兴趣看到有人使用 Java 来做到这一点。
最佳答案
我知道这是一个非常古老的问题,但我决定将其张贴在这里以防万一其他人遇到同样的问题。
这是我目前使用的。它真的很简单而且效果很好。
https://code.google.com/p/xdeltaencoder/
您需要确保对源进行校验和(在我的例子中是 fileAJson),因为它不会自动为您执行!
无论如何,代码如下:
//Create delta
String[] deltaArgs = new String[]{fileAJson.getAbsolutePath(), fileBJson.getAbsolutePath(), fileDelta.getAbsolutePath()};
XDeltaEncoder.main(deltaArgs);
//Apply delta
deltaArgs = new String[]{"-d", fileAJson.getAbsolutePath(), fileDelta.getAbsolutePath(), fileBTarget.getAbsolutePath()};
XDeltaEncoder.main(deltaArgs);
//Trivia, Surpisingly this also works
deltaArgs = new String[]{"-d", fileBJson.getAbsolutePath(), fileDelta.getAbsolutePath(), fileBTarget.getAbsolutePath()};
XDeltaEncoder.main(deltaArgs);
Update data only by difference between files (delta for java)
关于java - Java 有哪些 Delta 编码/压缩算法库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11354657/