7
votes

Comment effacer le texte existant dans un fichier

Je travaille sur une mission pour l'école et j'essaie quelque chose au-delà du crédit supplémentaire. Le programme consiste à démontrer les différences d'efficacité entre une recherche linéaire et binaire de la taille de la matrice donnée d'entiers. J'ai une boucle configurée qui crée une matrice INT [Taille], recherche un nombre aléatoire, puis crée une nouvelle gamme d'int [taille * 2].

Les résultats sont ensuite écrits dans un fichier texte. La sortie écrit bien, mais après avoir compilé et exécuté le programme plusieurs fois, le fichier de sortie comporte de nombreuses sections de données.

Ceci est mon code imbriqué à l'intérieur d'un bloc d'essai / prise: xxx

est-ce que je peux effacer le texte dans ce fichier de sortie à chaque fois que le programme est exécuté?

La raison pour laquelle je fais cela est que le professeur requiert L'impression de résultats avec les données graphique. J'ai déjà terminé l'exigence graphique et cela fonctionne bien. Je veux juste que l'impression de fichier correspond à l'impression graphique.


0 commentaires

4 Réponses :


5
votes

Le deuxième argument du constructeur FileWriter, que vous passez dans "True", est "APPEND". C'est à dire. Comme vous l'avez défini sur TRUE, il appendra votre nouvelle sortie à la fin du fichier. Si vous passez de faux à la place, il essaiera les données qui y sont déjà et écrivez-la neuve.


0 commentaires


3
votes

1 commentaires

Merci pour l'aide. Quand j'ai changé la valeur booléenne en faux, tout a bien fonctionné. En ce qui concerne la canette () et existe (), je n'avais pas pensé à cela, puisque j'ai utilisé ce conditionnel de l'exemple de dossier de mon professeur, bien qu'il utilisait PrintStream et une méthode d'assistance pour faire la même chose. Merci de le pointer.



0
votes

D'accord alors j'ai essayé quelque chose et ça a fonctionné. Ceci est lorsque vous avez un fichier destiné à ajouter tout nouveau texte, mais vous souhaitez réinitialiser / effacer le contenu du fichier au début de l'exécution du programme. J'espère avoir du sens.

    PrintWriter pw1 = new PrintWriter(new BufferedWriter(new FileWriter("newfile.txt")));
    pw1.close(); // Make sure the first PrintWriter object name is different from the second one.

    PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("newfile.txt", true))); // PrintWriter in append-mode. When you recreate the text file with the same name, the file contents are erased because the previous object was not in append mode.
    pw.close();


0 commentaires