diff --git a/test/examples/diffutils/ComputeDifference.java b/test/examples/diffutils/ComputeDifference.java new file mode 100644 index 0000000..e866d81 --- /dev/null +++ b/test/examples/diffutils/ComputeDifference.java @@ -0,0 +1,44 @@ +package diffutils; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.util.LinkedList; +import java.util.List; + +import difflib.Delta; +import difflib.DiffUtils; +import difflib.Patch; + +public class ComputeDifference { + static final String FS = File.separator; + static final String originalFilename = "test" + FS + "mocks" + FS + "original.txt"; + static final String revisedFilename = "test" + FS + "mocks" + FS + "revised.txt"; + + private static List fileToLines(String filename) { + List lines = new LinkedList(); + String line = ""; + try { + BufferedReader in = new BufferedReader(new FileReader(filename)); + while ((line = in.readLine()) != null) { + lines.add(line); + } + } catch (IOException e) { + e.printStackTrace(); + } + return lines; + } + + public static void main(String[] args) { + List original = fileToLines(originalFilename); + List revised = fileToLines(revisedFilename); + + // 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); + } + } +}