|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Mar 2008
Messaggi: 39
|
[JAVA] Lettura file vuoto con BufferedReader
Ciao a tutti,
ho necessità di gestire la lettura di un file di testo vuoto. Non riesco a capire cosa restituisce readLine() applicata su un file vuoto. Nel seguito riporto il classico codice per gestire la lettura da file ________________________________________________________ File file=new File(path_file); FileInputStream fis = new FileInputStream(file); InputStreamReader isr = new InputStreamReader(fis); BufferedReader br = new BufferedReader(isr); //Prende la prima riga del file String linea=br.readLine(); if(linea != null){ System.out.println("File non vuoto"); }else{ System.out.println("File vuoto"); } |
![]() |
![]() |
![]() |
#2 |
Junior Member
Iscritto dal: Jun 2008
Messaggi: 17
|
scusa,perchè nn mandi su video proprio la readLine?cioè, perchè prima dell'if nn metti l'istruzione System.out.println(br.readLine())?così saprai cosa manda in uscita.sempre se è qst il tuo problema
![]() |
![]() |
![]() |
![]() |
#3 | |
Member
Iscritto dal: Mar 2008
Messaggi: 39
|
Quote:
_____________________________________ String linea=br.readLine(); System.out.println(linea); if( linea!= null){ System.out.println(File non vuoto); }else{ System.out.println("File vuoto"); } _____________________________________ OUTPUT: null null cioè praticamente la condizione dell'if non mi intercetta il null prodotto da readLine(). Come risolvere?? |
|
![]() |
![]() |
![]() |
#4 |
Junior Member
Iscritto dal: Jun 2008
Messaggi: 17
|
ma nell'if nn entra proprio????mi sembra strano.
|
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Mar 2008
Messaggi: 39
|
no...non entra proprio....
|
![]() |
![]() |
![]() |
#6 |
Junior Member
Iscritto dal: Jun 2008
Messaggi: 17
|
c'ho provato con together e mi funziona perfettamente.nn so cosa possa essere da te.il codice che ho inserito è qst,con l'aggiunta dei "try/catch"per gestire le varie eccezioni:
String path_file="esempio.txt"; File file=new File(path_file); FileInputStream fis; try { fis = new FileInputStream(file); InputStreamReader isr = new InputStreamReader(fis); BufferedReader br = new BufferedReader(isr); // Prende la prima riga del file String linea=br.readLine(); if(linea != null){ System.out.println("File non vuoto"); }else{ System.out.println("File vuoto"); } } catch (FileNotFoundException e) {} catch (IOException e) {} dove "esempio.txt" è semplicemente un file di testo vuoto inserito nel workspace. mi dispiace...nn so che dirti a qst punto |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Ho fatto anche io una prova con il tuo codice:
Codice:
public class Main { static final private String path_file = "C:/text.txt"; /** * @param args the command line arguments */ public static void main(String[] args) throws FileNotFoundException, IOException { File file = new File(path_file); BufferedReader br = new BufferedReader( new InputStreamReader(new FileInputStream(file))); String linea = br.readLine(); if (linea != null) { System.out.println("File non vuoto"); System.out.println(linea); System.out.println("---"); } else { System.out.println("File vuoto"); System.out.println("---"); } } } Sei sicuro che il tuo file di testo sia completamente *vuoto*? Non è che magari era presente una escape sequence non visibile (tipo una \n "newline")? Verifica aprendo il file txt con un editor che ti permetta di visualizzare i "caratteri nascosti" (per esempio TextPad).
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
![]() |
![]() |
![]() |
#8 |
Member
Iscritto dal: Mar 2008
Messaggi: 39
|
ok...grazie mille per i consigli !
Ho risolto.... |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:57.