[Java] Problema lettura da File
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
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?
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
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?
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?
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?