Suppression de contenu d'un fichier avec java

amani -  
 amani -
Bonjour,


j'ai un fichier je veux effacer son contenu comment faire svp
A voir également:

2 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Tu l'écrases (tu le supprimes, et tu le recrées)
1
amani
 
je veux le garder car on doit l'utiliser en même temps dans le code en écriture.je dois le garder et le vider s'il contient qql chose
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Alors expliques mieux ce que tu veux faire. Tu veux l'effacer, le garder, écrire et vider... Dans quel ordre ? Pourquoi faire ? Quels types de données ?
0
amani
 
c'est un fichier texte.je dois a chaque fois tester s'il contient qql chose (car dans une partie de programme on écrit dans le fichier) après se test je dois effacer son contenu sans changer ni son nom ni son emplacement juste vider le contenu..alors comment?
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Si tu fais sans arrêt des écritures, suppression, écritures etc... Pourquoi utiliser un fichier pour ça ?
Savoir si le fichier contient quelque chose c'est facile, il suffit de mettre un booléen à true dès que tu écris dedans et à false dès que tu l'effaces, mais je ne vois pas ce qui t'empêche de fermer ton fichier, le supprimer, et le recréer, ça fera exactement pareil que l'effacer (ce qui n'est pas directement possible à ma connaissance)
0
amani
 
bon comment tester s'il est non vide comment l'écraser et le récréer ..
0
Utilisateur anonyme
 
Salut,

Par exemple avec FileWriter qui permet d'ajouter au contenu du fichier, ou de supprimer le contenu du fichier avant d'ajouter.

Ce que nous ajouterons dans le cas ci-dessous, c'est une ligne nulle (""):

PrintWriter pw =  new PrintWriter(new BufferedWriter
           //(new FileWriter("nomFichier.type", true))); // >>>> append = ajout
            //ou bien:
            (new FileWriter("nomFichier.type", false))); // >>>> on remplace (on "écrase")
            //ou encore (par défaut):
            //new FileWriter("nomFichier.type"))), // on remplace (on "écrase")

// Et on ajoute une ligne de longueur 0 (""):
             pw.println("");


Cordialement,

Dan
-1
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Ta ligne de "longueur 0" contiendra en fait le(s) octet(s) de fin de ligne CR et/ou LF à cause du println.
Mais je suis tout à fait d'accord, créer un FileWriter permettra d'écraser le fichier, mais c'est une suppression/recréation du fichier comme je l'indiquais plus haut, cela nécessitera en particulier que tous les flux sur le fichier initial soient fermés... à moins d'aimer les IOException ^^
0
amani
 
j'ai essayé mais cela n'a rien effacé du fichier :/
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Juste ça, ça vide un fichier (si tu as les droits bien sûr)

public static void main(String...args) throws IOException
{
    new FileWriter(new File("D:\\test.txt")).close();
}
0
Utilisateur anonyme
 
Re,

PrintWriter pw = new PrintWriter(new BufferedWriter
(new FileWriter("leFichier.sonType", false))); // >>>> on ajoutera après suppression de ce qui existait éventuellement
pw.print("");// ajout de la ligne vierge si print sans ln bien entendu
pw.close();


Dan
0
amani
 
merci bcp tout le monde :) cela marche bien.
0