找文本差异比较工具的时候, 通过DIFF 找到 /java-diff-utils
主页:http://code.google.com/p/java-diff-utils/
/**
* Author: peculiar.1@163.com
* Copyright (c) 2004-2014 All Rights Reserved.
*/
package com.zsq.doc;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.List;
import difflib.Delta;
import difflib.DiffUtils;
import difflib.Patch;
/**
*
*
* @author peculiar.1@163.com
* @version $ID: Test.java, V1.0.0 2014-6-13 下午4:55:39 $
*/
public class Test {
// Helper method for get the file content
private static List<String> fileToLines(String filename) {
List<String> lines = new LinkedList<String>();
String line = "";
try {
BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(filename), "GBK"));
while ((line = in.readLine()) != null) {
lines.add(line);
}
} catch (IOException e) {
e.printStackTrace();
}
return lines;
}
public static void main(String[] args) {
List<String> original = fileToLines("d:/log/1.txt");
List<String> revised = fileToLines("d:/log/2.txt");
// Compute diff. Get the Patch object. Patch is the container for computed deltas.
Patch patch = DiffUtils.diff(original, revised);
for (Delta delta: patch.getDeltas()) {
System.out.println(delta);
}
}
}
结果
[ChangeDelta, position: 2, lines: [3. 班级ID 是否显示] to [123123123, 123123, 3. 班级ID 是否显11示, 123123]]
[InsertDelta, position: 6, lines: [, 1, 123123123123]]
insertDelta 插入的变化