Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    883

    Cancellazione di un file in java

    Ho un file che voglio cancellare

    static File f = null;
    static PrintWriter pw = null;

    FileReader fin = null;

    String absPath ="c:\\prova.txt";

    try {
    fin = new FileReader(absPath);
    } catch(FileNotFoundException e){} }

    try {
    pw = new PrintWriter
    (new BufferedWriter
    (new FileWriter
    ( f.getAbsolutePath(), true )));
    } catch (IOException IOE) {}

    try {
    fin.close();
    } catch (IOException e5){}

    pw.flush();
    pw.close();
    f.exists();
    f.delete();

    La exist ritorna il valore true, quindi il file lo trova
    La delete torna il valore di false cioè non lo cancella
    Il file non viene cancellato, e' come se rimanesse qualcosa di aperto che punta al file ma io ho chiuso sia il reader sia il writer

    qualcuno sa darmi una mano?

    (le variabili f e pw devono essere globali e static nel mio programma)

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    883
    f w pw devono essere static perchè anche se le ho dichiarate globali, passando da un metodo ad un altro NELLA STESSA CLASSE, mi diventano null...
    Se le dichiaro static questo non succede

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    2,894
    Ma f punta a null

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    883
    forse ho capito il problema ho istanziato due oggetti della stessa classe
    ignorate questo post, vado a pranzo e poi indago

  5. #5
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    prova così
    FileWriter FW = new FileWriter(f.getAbsolutePath(), true);
    BufferedWriter BW = new BufferedWriter(FW);
    pw = new PrintWriter(BW);
    e per chiudere
    FW.close();
    BW.close();
    pw.close();
    poi toglierei il BufferedWriter

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    883
    scusa hai ragione ho dimenticato di incolalre un pezzo

    f = new File ("c:\\prova.txt");

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    2,894
    Ah OK...

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    883
    ok intanto pw e f non sono più static l'errore derivava che istanziavo due oggetti per quello mi diventavano null mentre passeggiavo fra i metodi

    ora prova la soluzione di floyd per cancellarlo

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    883
    floyd ho chiuso tutto ma non lo cancella lo stesso

  10. #10
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    dovresti lasciare il tempo alla jvm di liberare tutte le risorse, prova a fare un Thread.sleep(2000);

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