Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    20

    JAVA - Errore da correggere

    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");
    }
    }
    }
    Golconda

  2. #2
    Forse sto per dire una cavolata, ma la dico lo stesso:

    ogni volta che nel codice compare
    codice:
    file1.readLine()
    tu stai leggendo una nuova riga...

    Quindi credo che sia necessario memorizzare la riga letta da readLine in una variabile, ed utilizzare questa per i confronti...

    Poi all'interno del ciclo aggiornarla con la lettura della prossima riga.

    La stessa cosa naturalmente vale per
    codice:
    file2.readLine()
    Spero di essere stato abbastanza chiaro... :quipy:
    :quipy: Kalauras :quipy:
    www.kalauras.com

  3. #3
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    codice:
    String firstString, secondString;
    while ((firstString = file1.readLine()) != null && (secondString = file2.readLine()) != null) {
    if (!firstString.equals(secondString))
    System.out.println(firstString);

  4. #4
    :quote: Appunto!
    :quipy: Kalauras :quipy:
    www.kalauras.com

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.