找文本差別比較工具的時候, 經過DIFF 找到 /java-diff-utils java
主頁: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); } } }
結果 google
[ChangeDelta, position: 2, lines: [3. 班級ID 是否顯示] to [123123123, 123123, 3. 班級ID 是否顯11示, 123123]] [InsertDelta, position: 6, lines: [, 1, 123123123123]]
insertDelta 插入的變化 code
感受不錯 收藏記錄