Cześć, mam problem z funkcją którą porównuje dwa pliki *.txt. Na wyjściu chciałbym dostać linie która jest błędna (Linia = 4) natomiast dostaje:
Linia = 4
Linia = 4
Linia = 6
Linia = 6
Linia = 4
Linia = 6
Linia = 4
BufferedReader bR1 = new BufferedReader(new FileReader("text1.txt"));
BufferedReader bR2 = new BufferedReader(new FileReader("text2.txt"));
String line1 = bR1.readLine().trim();
String line2 = bR2.readLine().trim();
int lineNum = 1;
int lineNum2 = 1;
List<String> result = new ArrayList<String>();
List<String> result2 = new ArrayList<String>();
while (line1 != null || line2 != null) {
if(line2 == null){
line1 = bR1.readLine();
bR2.close();
bR2 = new BufferedReader(new FileReader("text2.txt"));
lineNum2 = 1;
lineNum++;
}
if (line1 == null && line2 == null) {
break;
}
if (line1.equalsIgnoreCase(line2)) {
result.add("Linia = " + lineNum);
} else{
result2.add("Linia = " + lineNum2);
}
line2 = bR2.readLine();
lineNum2++;
}
result2.removeAll(result);
for (String s : result2) {
System.out.println(s);
}
text1.txt
To jest pierwsza linia
w przykładowym pliku.
Są też jakieś kolejne.
Siema
A tu jest ok
text2.txt
To jest pierwsza linia
w przykładowym pliku.
Są też jakieś kolejne.
Tak to jest linia której nie ma w text1
A tu jest ok
Proszę o radę co jest źle a może czego brakuje?