Übung 7: Dateien Aufgabe 1 Gegeben ist das Skelett des Programms FileCompare, das zwei Textdateien zeilenweise miteinander vergleicht. Die Namen der zu vergleichenden Dateien werden dem Programm auf der Kommandozeile übergeben. Sind die Dateien identisch, gibt FileCompare die Anzahl der verglichenen Zeilen aus. Sind sie nicht gleich, so schreibt FileCompare nacheinander die unterschiedlichen Zeilen auf den Bildschirm. Am Schluss gibt FileCompare die Anzahl der unterschiedlichen Zeilen aus. Füllen Sie die 12 Lücken **X** im Programm so aus, dass FileCompare die oben beschriebene Spezifikation erfüllt. Aufgabe 2 Welche Unterschiede in den Textdateien sind mit FileCompare nur mühsam lokalisierbar. import java.io.*; // FileCompare vergleicht zwei Textdateien zeilenweise // Aufruf: java FileCompare file1 file2 public class FileCompare { private private private private private static static static static static String file1, file2; BufferedReader reader1, reader2; boolean same = true; int linecount=0; // Anz. Zeilen int diffcount=0; // Anz. untersch. Zeilen public static void main(String[] args){ if (**1**){ System.err.println("Usage: java FileCompare file1 file2"); System.exit(1); } file1 = args[0]; file2 = args[1]; try{ reader1 = **2**; } catch(IOException e){ System.err.println("File " + file1 + "not found"); System.exit(1); } try{ reader2 = **3**; } catch(IOException e){ System.err.println("File " + file2 + "not found"); and (2004) 1 Uebung-04.doc System.exit(1); } compare(); if (same){ System.out.println(); System.out.println(file1 + " and " + file2 + " are identical."); System.out.println("" + **4** + " lines compared."); } else{ System.out.println(); System.out.println(file1 + " and " + file2 + " differ in " + **5** + " lines"); } reader1.close(); reader2.close(); } private static void compare(){ String line1, line2; try{ linecount++; **6**; **7**; while((line1 != null) && (line2 != null)){ same = same && (**8**) if (!**8**){ System.out.println("Difference at line "+linecount+" : "); System.out.println(file1 + " >>>" + line1 + "<<<"); System.out.println(file2 + " >>>" + line2 + "<<<"); **9**; } linecount++; **10**; **11**; } // sind Dateien auch gleich lang? same = same && **12**; } catch(IOException e){ System.err.println("Error reading file"); System.exit(1); } } } and (2004) 2 Uebung-04.doc