1 package com.tonbeller.tbutils.httpunit; 2 3 import java.io.BufferedReader ; 4 import java.io.File ; 5 import java.io.FileReader ; 6 import java.io.IOException ; 7 8 14 public class FileDiff { 15 16 public boolean equalsFiles(File f1, File f2) throws IOException { 17 return equalsFiles(f1, f2, new DefaultHandler()); 18 } 19 20 public boolean equalsFiles(File f1, File f2, FileDiffHandler h) throws IOException { 21 FileDiffHandler handler = h == null ? new DefaultHandler() : h; 22 23 System.out.println("Comparing "); 24 System.out.println("> " + f1); 25 System.out.println("< " + f2); 26 27 BufferedReader fr1 = null; 28 try { 29 fr1 = new BufferedReader (new FileReader (f1)); 30 BufferedReader fr2 = null; 31 try { 32 fr2 = new BufferedReader (new FileReader (f2)); 33 int line = 0; 34 int errCnt = 0; 35 while (errCnt<10) { 36 line++; 37 String line1 = handler.prepareLine(fr1.readLine()); 38 String line2 = handler.prepareLine(fr2.readLine()); 39 40 if (!equalsLines(line1, line2)) { 41 System.out.println("Lines different at " +line); 42 System.out.println("> " + line1); 43 System.out.println("< " + line2); 44 errCnt++; 45 } 46 47 if (line1 == null) 48 break; 49 } 50 return errCnt==0; 51 } finally { 52 if (fr2 != null) 53 fr2.close(); 54 } 55 } finally { 56 if (fr1 != null) 57 fr1.close(); 58 } 59 } 60 61 private boolean equalsLines(String line1, String line2) { 62 if (line1 == line2) 63 return true; 64 if (line1 == null) 65 return false; 66 67 return line1.equals(line2); 68 } 69 70 public interface FileDiffHandler { 71 72 public String prepareLine(String line); 73 } 74 75 static class DefaultHandler implements FileDiffHandler { 76 77 public String prepareLine(String line) { 78 if (line == null) 79 return null; 80 return line.trim(); 81 } 82 83 } 84 } | Popular Tags |