【问题标题】:What Delta Encoding/Compression Algorithm libraries are there for Java?Java 有哪些 Delta 编码/压缩算法库?
【发布时间】:2012-07-06 01:14:14
【问题描述】:

所以我正在阅读delta encoding,我正在四处寻找一些好的例子。我认为谷歌浏览器使用类似的东西来更新补丁,rsync 可能,维基百科的文章暗示很多在线备份工具都在使用它。

我很好奇是否有任何好的 Java 库可以做这种工作?似乎有大量的 *nix 和基于 C 的工具,但很少或没有 Java 等价物可以做的不仅仅是压缩数据结构。

无论如何,这对我来说是一个全新的概念,所以我很想阅读有关它的任何内容,特别想看到有人使用 Java 来做这件事。

【问题讨论】:

标签: java algorithm diff delta


【解决方案1】:

我知道这是一个非常古老的问题,但我决定在这里发布这个问题,以防其他人偶然发现同样的问题。

这是我目前正在使用的。这真的很简单,而且效果很好。

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)

【讨论】:

    【解决方案2】:

    维基百科lists several Java implementations for the VCDIFF delta format.

    还存在rsync 算法的Java 实现,可用于创建二进制差异。它们似乎还没有准备好生产,但是如果您只想查看代码,它们就可以了。见Any good rsync library for Java?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-15
      • 2010-09-29
      • 2018-10-29
      • 1970-01-01
      • 1970-01-01
      • 2011-07-07
      相关资源
      最近更新 更多