2012-07-06 26 views
1

因此,我正在閱讀delta encoding,我正在四處尋找一些很好的例子。我認爲谷歌瀏覽器使用類似的補丁更新,rsync可能和維基百科文章暗示,大量的在線備份工具使用它。什麼Delta編碼/壓縮算法庫有Java?

我很好奇,如果有任何好的Java庫在那裏做這種工作?似乎有大量的* nix和基於C的工具,但很少或沒有Java等價物比壓縮數據結構做得更多。

無論如何,這對我來說是一個全新的概念,所以我很想知道關於它的所有內容,特別感興趣的是看到有人使用Java來做這件事。

+0

http://da.vidr.cc/projects/lljvm/☺ – 2012-07-06 01:40:30

回答

2

我知道這是一個非常古老的問題,但是我決定在這裏發佈這個,只是讓其他人絆倒在同一個問題上。

這就是我目前使用的。這非常簡單,效果很好。

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)