Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 15 su 15
  1. #11
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da Alex'87
    Perché in è dichiarato all'interno del blocco try ed è visibile solo lì dentro.
    Esatto.
    La corretta gestione dei file, con le loro eccezioni, va fatta in questo modo:

    codice:
    // Dichiarazione dell'identificatore da usare per la lettura del file
    Reader / InputStream identificatore = null;
    
    try {
    
       // Gestione del file
       identificatore = ...   // Inizializzazione del reader / input-stream
       ...   // Gestione del file (lettura / scrittura)
    
    } catch (Exception e) {
    
       e.printStackTrace();
       // Gestione dell'eccezione
    
    } finally {
    
       if (identificatore != null) {
          try {
    
             // Chiusura dell'identificatore
             identificatore.close();
    
          } 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

  2. #12
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da Markus85
    ho dichiarato il finally fuori dal blocco try
    Eh?
    Lo sai, vero, che hai detto una cosa senza alcun senso...


    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. #13
    Prova magari anche a chiudere lo stream su cui scrivi.

  4. #14
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    339
    Ho fatto cosi:

    codice:
    package Poo;
    import java.util.*;
    import java.math.*;
    import java.io.*;
    
    public class Applicazione {
    	
    	public static void main(String[] args){
    		
    		Lista lista = new Lista();
    		
    		Scanner sc = new Scanner(System.in);
    		System.out.println("Inserisci la directory del file da elaborare");
    		String directoryf = sc.next();
    		File f = new File(directoryf); 
    		if(!f.exists()) throw new RuntimeException("Il file non esiste");
    		try{
    			BufferedReader in = new BufferedReader(new FileReader(directoryf));
    			String linea = in.readLine();
    			StringTokenizer st = new StringTokenizer(linea);
    			while(st.hasMoreTokens()){
    				String s = st.nextToken();
    			int n = Integer.parseInt(s);
    			lista.add(n);
    		}
    		}
    		catch(IOException e){
    			e.printStackTrace();
    		}
    		finally{
    			in.close();
    		}
    mi sottolinea in in rosso e dice "in cannot be resolved"

  5. #15
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da Markus85
    mi sottolinea in in rosso e dice "in cannot be resolved"
    Ti abbiamo già detto perchè.
    E ti ho anche fornito la metodologia da usare quando si gestiscono i file.

    Se dichiari il buffered reader "in" dentro il blocco try, non lo potrai mai vedere dentro al blocco finally.

    E come ti ho già detto qualche post più su, gli oggetti per la lettura vanno dichiarati fuori dal blocco try.

    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

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 © 2026 vBulletin Solutions, Inc. All rights reserved.