java - Java 有哪些 Delta 编码/压缩算法库?

标签 java algorithm diff delta

所以我正在阅读 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/

相关文章:

algorithm - 基于条件的快速匹配元组

algorithm - 如何优化橡皮擦的筛网,以便仅存储很大范围内的质数?

git - 如何在 git 中使用完整路径?

text - 如何检测具有一定模糊性的重复文本

java - Jersey 错误 java.lang.ClassNotFoundException : com. sun.jersey.spi.container.servlet.ServletContainer

java - 在android中以编程方式将apk文件推送到assets文件夹中

java - 将 SpinnerDateModel 格式的值传递给 String

java - SQLite 与 Java web 启动(在 JNLP 中)怎么样?

填充三角形的算法

python 字典更新差异