Ciao ragazzi,
sono ancora io sempre alle prese con un esercizio di programmazione.
questa volta il programma dovrebbe essere piuttosto semplice (e per questo non mi spiego tutte le difficoltà che sto avendo).
Il problema è che per semplice che sia la comparazione di due stringhe pare che non funzioni a dovere. Prima mi dava sempre una NullPointException, poi aggiungendo una condizione nell'IF l'ho evitata ma ora in compenso mi stampa solo null e non capisco perchè visto che ho fatto i test su file che avevano due righe uguali e due diverse.
PLS AIUTATEMI!
posto il codice di seguito.
Grazie mille.
import java.io.*;
public class Esercizio3 {
public static void main(String[] args) {
FileReader lettore = null;
FileReader lettore2 = null;
String nomefile = "";
String nomefile2 = "";
BufferedReader digitato, file1, file2;
// il blocco che segue riceve il nome del primo file da comparare e apre lo stream in lettura per questo file
System.out.println("Immettere il nome del primo file da comparare");
digitato = new BufferedReader(new InputStreamReader(System.in));
try {
nomefile = digitato.readLine();
} catch (IOException e) {
System.out.println("si è verificato un errore di input/output:");
e.printStackTrace();
}
try {
lettore = new FileReader(nomefile);
} catch (FileNotFoundException e1) {
System.out.println(
"File non trovato, controllare il nome del file e riprovare");
}
//il blocco che segue riceve il nome del secondo file da comparare e apre lo stream in lettura per questo file
System.out.println("Immettere il nome del secondo file da comparare");
try {
nomefile2 = digitato.readLine();
} catch (IOException e) {
System.out.println("si è verificato un errore di input/output:");
e.printStackTrace();
}
try {
lettore2 = new FileReader(nomefile2);
} catch (FileNotFoundException e1) {
System.out.println(
"File non trovato, controllare il nome del file e riprovare");
}
file1 = new BufferedReader(lettore);
file2 = new BufferedReader(lettore2);
try {
while (file1.readLine() != null && file2.readLine() != null) {
if (!file1.readLine().equals(file2.readLine()))
System.out.println(file1.readLine());
}
} catch (IOException e2) {
System.out.println(
"si è verificato un errore di I/O durante la comparazione dei due files");
}
}
}