Witam, mam napisać program, porównujący dwa pliki tekstowe
np. plik 1 plik 2
to jest linia 1 to tez linia 1
to jest koniec tutaj linia 2
to jest koniec.
program ma wyświetlac którymi słowami się różnią(jest/też) oraz wypisywac dodatkowe linie
niestety nie mam pomysłu w jaki sposób porównac ze sobą niewymiarowe tablice
jest ktoś kto mógłby pomóc, coś doradzic?
do tej pory udało mi sie napisac:
package diff;
import java.io.*;
import java.util.Arrays;
public class DIFF {
public static void main(String[] args) throws IOException {
String plik1 = "C:01.txt";
String plik2 = "C:02.txt";
odczyt(plik1, plik2);
}
static void odczyt(String plik1, String plik2) throws IOException {
// odczyt wiersz po wierszu
BufferedReader plikwe1 = null;
BufferedReader plikwe2 = null;
try {
plikwe1 = new BufferedReader(new FileReader(plik1));
plikwe2 = new BufferedReader(new FileReader(plik2));
int ileliniip1 = 0;
int ileliniip2 = 0;
// czyanie pliku 1 i 2 + ile linii maja
while ((plikwe1.readLine()) != null) {
ileliniip1++;
}
while ((plikwe2.readLine()) != null) {
ileliniip2++;
}
System.out.println("Tekst pierwszy ma " + ileliniip1 + ", a tekst drugi ma " + ileliniip2 + " lini ");
// wsadzic do tablic
String p1, p2;
String[] tabtekst1 = null;
String[] tabtekst2 = null;
plikwe1 = new BufferedReader(new FileReader(plik1));
plikwe2 = new BufferedReader(new FileReader(plik2));
// czyanie pliku 1 i 2 + ile linii maja
/*while ((p1=plikwe1.readLine()) != null) {
tabtekst1=p1.split(" ");
System.out.println(Arrays.toString(tabtekst1));
}
while ((p2=plikwe2.readLine()) != null) {
tabtekst2=p2.split(" ");
System.out.println(Arrays.toString(tabtekst2));
}*/
for (int i = 0; i < ileliniip1; i++) {
for (int j = 0; j < ileliniip2; j++) {
if ((p1 = plikwe1.readLine()) != null) {
tabtekst1 = p1.split(" ");
// System.out.println(Arrays.toString(tabtekst1));
}
if ((p2 = plikwe2.readLine()) != null) {
tabtekst2 = p2.split(" ");
// System.out.println(Arrays.toString(tabtekst2));
}
for (int a = 0; a < tabtekst1.length; a++) {
for (int b = 0; b < tabtekst2.length; b++) {
if (tabtekst1[a].equals(tabtekst2[a])) {
System.out.println("słowo -" + tabtekst1[a] + "- jest identyczne");
}
if (!(tabtekst1[a].equals(tabtekst2[b]))) {
System.out.println(tabtekst1[a]);
}
// if(tabtekst1[i]!=tabtekst2[j])
// { System.out.println("linia"+i+"nie jest identyczna");
// }
}
}
if ((p2 = plikwe2.readLine()) == null && (p2 = plikwe2.readLine()) == null) {
break;
}
}
}
} finally {
if (plikwe1 != null) {
plikwe1.close();
}
if (plikwe2 != null) {
plikwe2.close();
}
}
}
}
}