Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    non riesco a cancellare file dopo esecuzione di un metodo

    allora cio un metodo void in cui creo un file,il quale a fine metodo deveesser cancellato tipo cosi:
    codice:
     
    public void faiQualcosa(){
    File f=new File("appoggio");
    
    //istruzioni
    
    
    
    
    
    
    f.deleteOnExit();
    
    }
    poi vado nel workspace e il file "appoggio" è ancora li..perche?

  2. #2
    Prova a usare il metodo delete()

  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: non riesco a cancellare file dopo esecuzione di un metodo

    Originariamente inviato da rossonero922
    allora cio un metodo void in cui creo un file,il quale a fine metodo deveesser cancellato tipo cosi:
    No, deleteOnExit non cancella il file a fine metodo ma quando la java virtual machine termina. Se non viene cancellato probabilmente c'è qualcosa di appeso che usa il file.. Forse non chiudi qualche stream?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  4. #4
    nemmeno il delete()...ora controllo gli stream..

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Piccolo suggerimento per quando si ha a che fare con l'apertura (per lettura/scrittura) di file. Questa è la procedura corretta del trattamento di questa situazione:

    codice:
    // Dichiarazione di tutti gli oggetti che andranno usati
    // e loro inizializzazione a null
    ...
    
    try {
    
       ...   // Inizializzazione ed uso degli oggetti
    
    } catch (Exception e) {
    
       ...   // Cattura di eventuali eccezioni
    
    } finally {
    
       ...   // Test di corretta inizializzazione e chiusura delle risorse,
       ...   // in ordine inverso rispetto all'inizializzazione
    
    }
    Esempio di trattamento della scrittura di un file di testo, con bufferizzazione:
    codice:
    // Dichiaro tutti gli oggetti che userò e li inizializzo a null
    FileWriter fw = null;
    BufferedWriter bw = null;
    PrintWriter pw = null;
    
    try {
    
       // Inizializzo e uso gli oggetti
       fw = new FileWriter("pippo.txt");
       bw = new BufferedWriter( fw );
       pw = new PrintWriter( bw );
    
       // Scrivo sul file
       pw.println("Ci scrivo tutto quello che voglio");
       // Flush dei dati
       pw.flush();
    
    } catch (Exception e) {
    
       // Catturo eventuali eccezioni
       e.printStackTrace();
    
    } finally {
    
       // Verifico che tutto sia stato inizializzato
       // e chiudo, in ordine inverso rispetto all'inizializzazione
       if (pw != null) {
          try { pw.close(); } catch (Exception e) { }
       } else {
          if (bw != null) {
             try { bw.close(); } catch (Exception e) { }
          } else {
             if (fw != null) {
                try { fw.close(); } catch (Exception e) { }
             }
          }
       }
    
    }
    Nota: l'ultimo oggetto che viene inizializzato è il primo ad essere controllato. Se questo è diverso da null, allora chiudo solo quello in quanto tutte le altre chiusure vengono fatte a catena automaticamente. Ovvero, se "pw" è inizializzato, allora sono per forza di cose inizializzati anche "bw" (visto che l'ho usato per costruire "pw") e "fw", visto che l'ho usato per costruire "bw". Chiudendo "pw", automaticamente vengono chiusi anche "bw" e "fw".

    Nota2: le chiusure vanno sempre fatte nel blocco finally, in modo da garantire che queste vengano effettivamente fatte sempre (anche in caso di eccezione).


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