Übung 7: Dateien Aufgabe 1 Aufgabe 2

Werbung
Ü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
Herunterladen