[Java] Problema lettura da File

cozzaciccio
Salve a tutti, ho davvero grossi problemi con il programma che sto elaborando.
E' basato su una comunicazione Client-Server, scrivo su un file di testo determinate stringhe e poi le devo leggere caricando il contenuto del file.
Per scrivere il contenuto sul file ho usato un FIleWriter chiamato 'fw' attaccato al file su cui scrivere, di cui ho utilizzato write nel seguente modo:

fw.write ("Stringa da scrivere su file " + "\r\n")

Uso "\r\n" affinchè per ogni riga scritta vada a capo, ma questo ovviamente causa la presenza di un 'a capo' nella riga finale.

Per leggere pensavo di usare il seguente codice

                                while (file_scanner.hasNextLine()) {
                                    message = file_scanner.nextLine();
                                    if (message == null) {
                                        System.out.println(">>> Finish loading file");
                                        break;
                                    } else {
                                        System.out.println(">>> Loading: "+ message);
                                     }
                                }


In cui file_scanner è collegato ad un FileReader attaccato a sua volta al file di testo su cui ho scritto precedentemente.
Pensavo di usare nextLine(), visto che questo legge tutta la riga compreso 'a capo' per passare poi alla riga successiva e così via, ma quando eseguo è come se lo Scanner non arrivasse alla condizione message == null, continuando a rimanere in attesa di qualche altro input.

Come potrei risolvere?

Risposte
giovx24
dovrebbe uscire automaticamente dal while dopo l'ultima riga, non credo ci sia bisogno dell'if con il break, sicuro che l'esecuzione non si blocchi dopo il while?

cozzaciccio
Grazie della risposta e scusa il ritardo, ho appena risolto togliendo l'if con il break e volevo aggiornare il post dicendo che avevo risolto, ma ne approfitto per fare un'altra domanda.
Se il file dovesse essere vuoto, cioè non ha nessun carattere scritto (per intenderci il puntatore "lampeggia" all'inizio della prima riga, come se si fosse pronti per scrivere) in quel caso si dovrebbe bloccare subito gusto oppure mi verrà restituito NullPointerException?

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.