2012-07-06 4 views
1

그래서 나는 delta encoding에 대해 읽고 있는데, 나는 그것의 좋은 예를 찾고 있었다. I Google 크롬은 패치 업데이트 용으로 rsync 일 가능성이 있으며 Wikipedia 기사에서는 온라인 백업 도구로 많이 사용한다는 것을 암시합니다.자바에는 델타 인코딩/압축 알고리즘 라이브러리가 있습니까?

이런 종류의 작업을 수행 할 수있는 좋은 Java 라이브러리가 있다면 궁금합니다. * nix 및 C 기반 도구가 풍부하지만 데이터 구조를 압축하는 것 이상의 기능을하는 자바가 거의 없거나 전혀 없습니다.

어쨌든 이것은 완전히 새로운 개념이므로 저의 경우 자바에 익숙한 사람들이 보는 것을 보면서 흥미로운 점이 있습니다.

+0

http://da.vidr.cc/projects/lljvm/ ☺ –

답변

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)

관련 문제