Hallo Allerseits
bin Informatikstudent im 1. Semester und und soll ein Programm schreiben welches Textdateien zeilenweise miteinander vergleicht. Sitzte da schon mehrere Stunden dran aber weiß nicht genau wie ich die Fehler beheben kann.
Hier ist mal mein bereits geschriebener Code:
Der Code soll mir die Zeilennummer ausgeben wo sich die Zeilen in Datei 1 und 2 unterscheiden, so etwa in diesem Muster :
Zeile xy:
< String hier so
> String hier anders
So weit so gut, das Ding ist aber, dass sobald eine Datei mehr Zeilen hat als die andere sollen diese als leere Zeilen gewertet werden und dementsprechend wieder mit der anderen Datei verglichen werden. habe schon viele Lösungen gesehen die "BufferedReader" verwenden, leider soll ich diesen nicht verwenden. Ich hoffe ihr habt meine Frage verstanden und könnt mir helfen
lg
bin Informatikstudent im 1. Semester und und soll ein Programm schreiben welches Textdateien zeilenweise miteinander vergleicht. Sitzte da schon mehrere Stunden dran aber weiß nicht genau wie ich die Fehler beheben kann.
Hier ist mal mein bereits geschriebener Code:
Java:
import java.io.*;
import java.util.*;
public class Diff {
public static void main(String[] args) throws FileNotFoundException {
diff();
}
public static void diff() {
Scanner datei1=null, datei2=null;
String text1, text2;
int zeile = 0;
try {
datei1 = new Scanner(new File("text1.txt"));
datei2 = new Scanner(new File("text2.txt"));
do {
text1 = datei1.nextLine();
text2 = datei2.nextLine();
zeile++;
if (text1.compareTo(text2) <0 | text1.compareTo(text2) >0) {
System.out.println("Zeile "+zeile+":");
System.out.println("< "+text1);
System.out.println("> "+text2);
System.out.println();
}else {
continue;
}
} while (datei1.hasNextLine() && datei2.hasNextLine());
}catch (FileNotFoundException notFound) {
System.out.println("Datei nicht gefunden");
return;
}catch (NoSuchElementException noLine) {
System.out.println("Eine der Dateien ist zu lang"); /** tritt ein falls eine der Dateien
länger als die andere ist*/
return;
}finally {
if (datei1 !=null) datei1.close();
if (datei2 !=null) datei2.close();
}
}
}
Der Code soll mir die Zeilennummer ausgeben wo sich die Zeilen in Datei 1 und 2 unterscheiden, so etwa in diesem Muster :
Zeile xy:
< String hier so
> String hier anders
So weit so gut, das Ding ist aber, dass sobald eine Datei mehr Zeilen hat als die andere sollen diese als leere Zeilen gewertet werden und dementsprechend wieder mit der anderen Datei verglichen werden. habe schon viele Lösungen gesehen die "BufferedReader" verwenden, leider soll ich diesen nicht verwenden. Ich hoffe ihr habt meine Frage verstanden und könnt mir helfen
lg