PDA

Visualizza la versione completa : [java] IOException


ianstilo
20-01-2005, 17:45
Ciao ciao..
ho un applicazione composta da un paio di classi.
in quella col main() chiamo un costruttore della seconda classe che deve andare a leggere delle cose su un file di testo..

finchè quest'operazione la facevo nel main() (cioè leggere dal file) non avevo problemi...ora che l'ho messa nel costruttore dell'altra classe mi dice FileNotFoundException

i files sono tutti nella stessa directory..e il file testo.txt è presente..
help.

LeleFT
20-01-2005, 18:07
Posta un po' di codice... così su due piedi, senza niente davanti è un po' difficile capire dove sia il problema... :)


Ciao. :ciauz:

ianstilo
20-01-2005, 20:05
String riga;
BufferedReader br=new BufferedReader(new FileReader("mappa.txt"));
while ((riga=br.readLine())!=null)
System.out.println(riga);

LeleFT
20-01-2005, 20:45
Ehm... un po' più di codice non farebbe male... penso che il problema risieda in qualche tipo di dichiarazione o di inizializzazione, da qualche altra parte del codice.

Per esempio, posta il metodo main() della classe principale e tutta la classe che viene richiamata.


Ciao. :ciauz:

ianstilo
20-01-2005, 21:54
non c'è altro da postare

il mio metodo main usa un costruttore

NomeCosa w = new NomeCosa();



la clase NomeCosa (che implementa NomeInterfaccia) nel costruttore deve leggere il file...

:rollo:

ianstilo
20-01-2005, 22:21
lasciamo perdere la situazione di prima ora ho un unica classe con un unico metodo main():




import java.io.*;
class TestFile{

public static void main(String[] args){
File input = new File("file.txt");
FileReader fr = new FileReader(input);
BufferedReader br = new BufferedReader(fr);
String riga;
while ((riga = br.readLine()) != null)
System.out.println(riga);

}

}




il file file.txt è nella stessa directory in cui lavoro con testFile.java e dunque con TestFile.class


l'errore che mi dà è

1. ERROR in testFile.java (at line 6)
FileReader fr = new FileReader(input);
^^^^^^^^^^^^^^^^^^^^^
Unhandled exception type FileNotFoundException
----------
2. ERROR in testFile.java (at line 9)
while ((riga = br.readLine()) != null)
^^^^^^^^^^^^^
Unhandled exception type IOException

LeleFT
20-01-2005, 22:52
Ah... la cosa è ben diversa! Non ti sta dicendo che il file non esiste, ma che non hai provveduto a catturare una eventuale eccezione di tipo FileNotFoundException: praticamente manca il blocco try/catch. Sostituisci così:


try {
File input = new File("file.txt");
FileReader fr = new FileReader(input);
BufferedReader br = new BufferedReader(fr);
String riga;
while ((riga = br.readLine()) != null)
System.out.println(riga);
} catch (Exception e) { e.printStackTrace(); }

Ciao. :ciauz:

ianstilo
20-01-2005, 22:53
ma non capisco...perchè ci vuole perforza?

LeleFT
20-01-2005, 22:56
Perchè potrebbe verificarsi l'eccezione tentando di aprire il file. Supponiamo che la tua applicazione venga avviata e, quasi contemporaneamente, qualcuno va a rimuovere il file (una applicazione o qualcos'altro)... La tua applicazione si trova senza file da aprire, viene generata l'eccezione e serve qualcosa che la gestisca.

Java è stato concepito con lo scopo di essere soprattutto cross platform: una simile eccezione, in sistemi operativi diversi, potrebbe causare problemi diversi. E' cura del programmatore, quindi, occuparsi dei vari casi di errore, laddove ce ne sia la necessità


Ciao. :ciauz:

ianstilo
20-01-2005, 22:57
ok......grazie..ciao ciao..

Loading