我知道这是一个非常古老的问题,但我决定在这里发布这个问题,以防其他人偶然发现同样的问题。
这是我目前正在使用的。这真的很简单,而且效果很好。
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)