Visualizzazione dei risultati da 1 a 10 su 10

Discussione: [java] IOException

  1. #1

    [java] IOException

    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.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Posta un po' di codice... così su due piedi, senza niente davanti è un po' difficile capire dove sia il problema...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    codice:
     
    		String riga;
     		BufferedReader br=new BufferedReader(new FileReader("mappa.txt"));
    		while ((riga=br.readLine())!=null)
    			System.out.println(riga);

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    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.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    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:

  6. #6
    lasciamo perdere la situazione di prima ora ho un unica classe con un unico metodo main():

    codice:
     
    
    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

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    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ì:
    codice:
    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.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  8. #8
    ma non capisco...perchè ci vuole perforza?

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    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.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  10. #10
    ok......grazie..ciao ciao..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.