6
votes

Comment puis-je écrire dans un fichier immédiatement?

Je veux conserver un fichier journal et j'utilise TextWriter / Streamwriter pour écrire des messages à mon fichier journal. J'appelle textwriter.flush () après avoir écrit le message, mon message ne s'affiche toujours pas tout de suite. Il ne se présente que lorsque j'appelle proche, et je préférerais ne pas rouvrir et fermer le fichier tout le temps simplement pour voir les messages immédiatement.


0 commentaires

3 Réponses :


6
votes

Vous voudrez peut-être essayer de construire un filtream vous-même passez dans le fichierOPTIONS.WriteThreThrough au constructeur. Construisez ensuite votre streamwriter avec ce filtream. L'option WriteThrough contourne le cache.


1 commentaires

Cette méthode était la seule qui a fonctionné à 100% du temps, merci.



0
votes

Assurez-vous d'ouvrir votre fichier journal avec l'accès en lecture-actions, permettant toutes les ouvertures suivantes du fichier de lecture, mais en refusant l'accès à l'écriture. De cette façon, vous pourrez surveiller le journal d'un autre programme.


0 commentaires

3
votes

Vous pouvez également définir le StreamWriter.Autoflush de la propriété sur true. Avec cela, tout ce qui est écrit sur le streamwriter sera écrit sur le disque immédiatement (après chaque appel à écrire ).

du Documentation MSDN sur Autoflush:

Obtient ou définit une valeur indiquant si le streamwriter va rincer sa mémoire tampon au flux sous-jacent Après chaque appel à Streamwriter..write.

marc


0 commentaires