Java - Comment Effacer un fichier texte sans le supprimer?
Je me demande ce que la meilleure façon d'effacer un fichier. Je sais que java crée automatiquement un fichier avec
f = new Formatter("jibberish.txt");
s = new Scanner("jibberish.txt");
si aucun n'existe déjà. Mais que faire si il en existe un, et je veux l'effacer à chaque fois que je lance le programme? C'est ce que je me demande: pour le dire encore une fois comment effacer un fichier qui existe déjà juste d'être vide?
Voici ce que je pensais:
public void clearFile(){
//go through and do this every time in order to delete previous crap
while(s.hasNext()){
f.format(" ");
}
}
- Vous devriez revérifier vos connaissances, car
Scanner(String)
ne crée pas un fichier.
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez effacer le fichier sans supprimer peut-être vous pouvez contourner ce
Edit: Il lève une exception si besoin pour attraper les exceptions
flush
méthode efface le contenu du fichier? J'ai penséflush
voudrais juste assurez-vous que le flux est complètement vidé..Mieux que je pouvais penser, c'est :
et
Dans les deux cas, si le fichier spécifié dans pathObject est accessible en écriture, ce fichier sera tronqué. Pas besoin de faire appel à write() de la fonction. Le code ci-dessus est suffisante pour vider/tronquer un fichier.Ce qui est nouveau dans java 8.
Espère que cela Aide
Vous pouvez supprimer le fichier et de le créer à nouveau au lieu de faire beaucoup de io.
Alternativement, vous pouvez simplement remplacer le contenu du fichier en une seule fois, comme expliqué dans les autres réponses :
Aussi, vous êtes en utilisant le constructeur de
Scanner
qui prend unString
argument. Ce constructeur ne sera pas lue à partir d'un fichier mais d'utiliser lesString
argument est le texte à analyser. Vous devez d'abord créé un descripteur de fichier et puis la passer à laScanner
constructeur :Vous pouvez simplement imprimer une chaîne vide dans le fichier.