文本差別比較

找文本差別比較工具的時候, 經過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]]



changeDelta 修改過的變化  其中結果集 ‘,’ 爲行分隔

insertDelta 插入的變化 code

感受不錯 收藏記錄
相關文章
相關標籤/搜索