Suppression de contenu d'un fichier avec java

Fermé
amani - 12 janv. 2012 à 21:49
 amani - 13 janv. 2012 à 13:33
Bonjour,


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

2 réponses

KX Messages postés 16740 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 26 mai 2024 3 016
12 janv. 2012 à 21:53
Tu l'écrases (tu le supprimes, et tu le recrées)
1
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 16740 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 26 mai 2024 3 016
12 janv. 2012 à 22:04
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
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 16740 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 26 mai 2024 3 016
12 janv. 2012 à 22:16
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
bon comment tester s'il est non vide comment l'écraser et le récréer ..
0
Utilisateur anonyme
13 janv. 2012 à 04:22
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 16740 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 26 mai 2024 3 016
Modifié par KX le 13/01/2012 à 06:57
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
j'ai essayé mais cela n'a rien effacé du fichier :/
0
KX Messages postés 16740 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 26 mai 2024 3 016
13 janv. 2012 à 09:15
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
13 janv. 2012 à 12:57
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
merci bcp tout le monde :) cela marche bien.
0