View Full Version : [JAVA]- Cancellazione File di testo
mirkus90
30-04-2008, 17:21
Ciao raga....mi servirebbe sapere come posso cancellare un file usando il linguaggio java.
La cosa ideale sarebbe quella di poter azzerare il contenuto del file stesso, ma in alternativa mi và bene anche l'eliminazione fisica del file !!!!
Chi mi può aiutare???
Grazie
Ciao Mirco!
Beh, per cancellare il contenuto di un file potresti aprirlo in scrittura e scriverci il carattere "" (un char c ='').
Aprendo in scrittura il file java dovrebbe automaticamente cancellare il precedente contenuto e procedere alla sovrascrittura.
khelidan1980
30-04-2008, 18:03
ma quanto sono grandi questi file?se no conviene cancellare e ricreare un file vuoto
Da ciò che facciamo abitualmente a scuola (Mirkus90 è mio compagno di classe :D)qualche KB (al max mezzo mega se si tratta del fatidico file comuni :D)
Allora conviene così :read:
File daEliminare = new File("C:\\file.txt"); //Referenzia oggetto file da percorso
if(daEliminare.exists()) //se esiste...
{
if(daEliminare.delete()) //prova a eliminarlo...
System.out.println("File eliminato!"); //e conferma...
}
else
{
System.out.println("Il file non esiste!");//altrimenti avverte l'utente
}
Oppure se vuoi azzerare il file, crei un BufferedWriter su quel file, ci scrivi una stringa nulla e poi lo chiudi (come già consigliato prima...)
La classe File è stata creata proprio per la completa gestione del FileSystem, con molti metodi comodissimi. :D
Se siete studenti di informatica allora vi consiglio come editor Eclipse:
ha parecchie funzioni pratiche, come l'intellisense (compare una finestrella con tutte i metodi di un oggetto dopo aver premuto "."), il versioning e la console di esecuzione java integrata. :sofico:
nuovoUtente86
30-04-2008, 23:16
ma quanto sono grandi questi file?se no conviene cancellare e ricreare un file vuoto
Personalmente ho sempre utilizzato la metodica della cancellazione e ri-creazione del file. Il tuo post però mi spinge ad una riflessione: chiedi le dimensioni del file....esistono delle differenze prestazionali (rispetto alle dimensioni) tra la cancellazione-creazione e la pulitura senza cancellazione?
khelidan1980
01-05-2008, 00:06
Personalmente ho sempre utilizzato la metodica della cancellazione e ri-creazione del file. Il tuo post però mi spinge ad una riflessione: chiedi le dimensioni del file....esistono delle differenze prestazionali (rispetto alle dimensioni) tra la cancellazione-creazione e la pulitura senza cancellazione?
non credo,lo chiesto perchè mi sembrava volesse concentrarsi su quella metodologia(non so magari perchè in futuro al posto della cancellazione volesse praticare una sostistuzione di determinati pattern o altre operazioni),per il resto credo convenga sempre cancellare e al massimo ricreare un file vuoto!
Ciao raga....mi servirebbe sapere come posso cancellare un file usando il linguaggio java.
La cosa ideale sarebbe quella di poter azzerare il contenuto del file stesso, ma in alternativa mi và bene anche l'eliminazione fisica del file !!!!
Chi mi può aiutare???
Grazie
ma tu ci voui scrivere su questi file ( i altri post parlano anche della ricreazione del file .... )? xche basta mettere a false il boolean "append" nel costruttore del "writer" (http://java.sun.com/j2se/1.4.2/docs/api/java/io/FileOutputStream.html), e ogni volta che scrivi qualcosa di nuovo , sovrascrive il vecchio contenuto
mirkus90
02-05-2008, 21:01
Grazie dei numerosi interventi....si come diceva il mio compagno PaVi....forse la strada più semplice sarebbe quella di scrivere una stringa nulla !!!!!!!!!
khelidan1980
02-05-2008, 21:18
Grazie dei numerosi interventi....si come diceva il mio compagno PaVi....forse la strada più semplice sarebbe quella di scrivere una stringa nulla !!!!!!!!!
no no usa la classe file,piu facile di quella:
String path = "C:path del file";
File toDelete = new File(path);
toDelete.delete();
così dovrebbe andare!
http://java.sun.com/javase/6/docs/api/java/io/File.html
String path = "C:path del file";
File toDelete = new File(path);
toDelete.delete();
così dovrebbe andare!
Per carità è giusto ( copione... :D ), ma così se il file non esiste java ti manda a quel paese...
Devi inserire un controllo di esistenza e di cancellazione, come ho fatto io prima (più sopra nel thread), almeno solo per dare all'utente un messaggio di informazione.
khelidan1980
03-05-2008, 13:44
Per carità è giusto ( copione... :D ), ma così se il file non esiste java ti manda a quel paese...
Devi inserire un controllo di esistenza e di cancellazione, come ho fatto io prima (più sopra nel thread), almeno solo per dare all'utente un messaggio di informazione.
Siceramente non ho notato il tuo codice e lo sai perchè?Non hai usato il tag code!! :sofico:
Si vero quello che dici era giusto per dagli un input,anche perchè li ci sono anche eccezioni non gestite! ;)Piu che altro sovrascrivere x eliminare un file di grandezza ignota non è proprio una gran cosa in termini di prestazioni,ma anche concettuale
mirkus90
03-05-2008, 13:52
Allora il problema dell'esistenza del file non è un problema in quanto il file esiste !!!!!!!! Poi come seconda annotazione ho da kiedervi se path stà per il nome del file....giusto????
khelidan1980
03-05-2008, 13:59
Allora il problema dell'esistenza del file non è un problema in quanto il file esiste !!!!!!!! Poi come seconda annotazione ho da kiedervi se path stà per il nome del file....giusto????
ok ma le eccezioni devi comunque gestirle,il runtime non sa a priori se il file esiste o no!Il path è ad esempio C:\\Document and settings\ecc\file.txt (ora non ricordo bene com'è la gerarchia non uso win da anni
Siceramente non ho notato il tuo codice e lo sai perchè?Non hai usato il tag code!!
ne ignoravo l'esistenza... :doh:
Cmq il path è ad esempio il percorso che ti compare sulla barra degli indirizzi di explorer quando raggiungi quel file sul disco, però in "giava" :D ci devi sempre mettere i doppi slash altrimenti ti dà errore in compilazione (es. C:\\Programmi\\file.txt ).
Per scrivere ulteriormente sul file c'è il metodo append(), che aggiunge altri contenuti a qualli già esistenti, ma in ogni caso per l'azzeramento conviene sempre cancellare e creare un nuovo file.
Le eccezioni come ha detto khelidan vanno ad ogni modo gestite, altrimenti ti ritrovi in mano con un programma che funziona nel tuo caso in cui il file esiste sempre, ma non rispetta la concezione "Scrivo una volta, compilo il codice e tutto funziona ovunque": se per caso il file è già stato cancellato avrai un crash poco fico del programma (e il professore ti mette 4)... :sofico:
nuovoUtente86
03-05-2008, 15:48
Siceramente non ho notato il tuo codice e lo sai perchè?Non hai usato il tag code!! :sofico:
Si vero quello che dici era giusto per dagli un input,anche perchè li ci sono anche eccezioni non gestite! ;)Piu che altro sovrascrivere x eliminare un file di grandezza ignota non è proprio una gran cosa in termini di prestazioni,ma anche concettuale
Come dicevo io preferisco sempre eliminare e poi ricrearlo....però credo che per medie-piccole dimensioni...cambi poco tra i 2 metodi...forse come dici tu per grandi dimensioni non è il massimo sovrascrivere con una valore vuoto...ma è piu semplice eliminarlo.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.