View Full Version : [JAVA] Lettura file vuoto con BufferedReader
swanelvis
18-06-2008, 16:07
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");
}
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 :p
swanelvis
18-06-2008, 16:29
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 :p
bene ...avevo già provato con le seguenti istruzioni
_____________________________________
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??
ma nell'if nn entra proprio????mi sembra strano.
swanelvis
18-06-2008, 17:13
no...non entra proprio....
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
banryu79
19-06-2008, 08:59
Ho fatto anche io una prova con il tuo 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("---");
}
}
}
Funziona benissimo.
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).
swanelvis
20-06-2008, 15:52
ok...grazie mille per i consigli !
Ho risolto....
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.