userpointio
Grünschnabel
Hi tutorials.de,
ich bin der Neue und falle gleich mal mit der Tuerr ins Haus:
Ich bin noch am Anfang meiner JAVA Karriere und habe bis dato nur ein sehr bescheidenes Know How und das Ganze hat sich
mir noch nicht so ganz erschlossen, weshalb ich mich durch Lektuere und Uebungen versuche zu verbessern.
Zunaechst moechte ich ein kleines Programm schreiben, welches zwei Logfiles miteinander vergleicht, welches nach und nach
ein wenig angepasst werden soll.
Differenzen sollen dabei in eine andere Datei geschrieben werden. Sprich:
FileA:
und
FileB:
werden verglichen. In FileC soll nach Ende der Operation "Line 2b" vorzufinden sein.
Ganz simpel also... jedoch nicht fuer nen Anfaenger
Ich moechte FileA und FileB Zeilenweise einlesen, um das Programm Resourcenschonend laufen lassen zu koennen.
Was habe ich bis jetzt?
Die if-Anweisung vergleicht bereits beide Dateien die ich dem Programm uebergebe. Allerdings nur die erste Zeile und stoppt dann.
Mach ich aus der if-Anweisung, ne while-Schleife, endet das Ganze in einer Endlosschleife des ersten Eintrags...
An dieser Stelle bin ich dann mit meinem Latein am Ende... frage mich, ob ich auf dem richtigen Weg bin... weiss eben nicht so ganz weiter.
Wuerde mich ueber Hilfe freuen. Doch bedenkt bitte, dass ich echt noch am Urschleim kratze!
EDIT: Okay, hab den Code oben ein wenig geaendert. Ich bin jetzt so weit, dass er mir die Zeilen ansatzweise vergleicht. Das Problem ist allerdings, dass er wirklich Zeilenweise vorgeht.
Sprich, wenn in FileA an erster Stelle "eins" steht. In FileB der Eintrag "eins" auch vorhanden ist,
allerdings nicht an erster Stelle, dann erkennt er auch nicht diese Gemeinsamkeit.
Was kann ich da tun?
ich bin der Neue und falle gleich mal mit der Tuerr ins Haus:
Ich bin noch am Anfang meiner JAVA Karriere und habe bis dato nur ein sehr bescheidenes Know How und das Ganze hat sich
mir noch nicht so ganz erschlossen, weshalb ich mich durch Lektuere und Uebungen versuche zu verbessern.
Zunaechst moechte ich ein kleines Programm schreiben, welches zwei Logfiles miteinander vergleicht, welches nach und nach
ein wenig angepasst werden soll.
Differenzen sollen dabei in eine andere Datei geschrieben werden. Sprich:
FileA:
Code:
Line 1
Line 2
Line 3
und
FileB:
Code:
Line 1
Line 2
Line 2b
Line 3
werden verglichen. In FileC soll nach Ende der Operation "Line 2b" vorzufinden sein.
Ganz simpel also... jedoch nicht fuer nen Anfaenger

Ich moechte FileA und FileB Zeilenweise einlesen, um das Programm Resourcenschonend laufen lassen zu koennen.
Was habe ich bis jetzt?
Code:
import java.io.*;
public class Abweichungen {
public static void main(String[] args) throws IOException {
String path1 = args[0];
String path2 = args[1];
try {
BufferedReader a = new BufferedReader (new FileReader(path1) );
BufferedReader b = new BufferedReader (new FileReader(path2) );
String zeileA;
String zeileB;
while (((zeileA = a.readLine()) != null) && ((zeileB = b.readLine()) != null)) {
if (zeileA.equals(zeileB)) {
System.out.println(zeileA);
}
}
a.close();
b.close();
}
catch (IOException e) {
System.out.println("Fehler: "+e.toString());
}
}
}
Die if-Anweisung vergleicht bereits beide Dateien die ich dem Programm uebergebe. Allerdings nur die erste Zeile und stoppt dann.
Mach ich aus der if-Anweisung, ne while-Schleife, endet das Ganze in einer Endlosschleife des ersten Eintrags...
An dieser Stelle bin ich dann mit meinem Latein am Ende... frage mich, ob ich auf dem richtigen Weg bin... weiss eben nicht so ganz weiter.

EDIT: Okay, hab den Code oben ein wenig geaendert. Ich bin jetzt so weit, dass er mir die Zeilen ansatzweise vergleicht. Das Problem ist allerdings, dass er wirklich Zeilenweise vorgeht.
Sprich, wenn in FileA an erster Stelle "eins" steht. In FileB der Eintrag "eins" auch vorhanden ist,
allerdings nicht an erster Stelle, dann erkennt er auch nicht diese Gemeinsamkeit.
Was kann ich da tun?
Zuletzt bearbeitet: