Qu'est-ce que la différence de fonctionnalités entre StreamWriter.Flush()
et StreamWriter.Close()
?
Lors de mes données n'a pas été correctement écrites dans un fichier, j'ai ajouté les deux Flush()
et Close()
à la fin de mon code. Cependant, j'ai réalisé que l'ajout soit de l' Flush()
ou Close()
admis que les données soient écrites correctement.
Je n'étais pas en mesure de revenir sur exactement ce que chacune de ces méthodes n'quand j'ai lu le MSDN docs; j'ai seulement compris que l'un ou l'autre est nécessaire pour assurer que les données sont écrites correctement. Plus d'explication serait très apprécié.
Où s
est une chaîne de caractères à écrire, voici ce que mon code ressemble actuellement:
StreamWriter sw = File.CreateText("TextOutput.txt");
sw.Write(s);
sw.Flush();
sw.Close();
Basé sur les commentaires des réponses, j'ai réécrit mon code dans une using
bloc, qui implémente IDisposable
et occupera automatiquement de la rédaction du flux de données vers le fichier lorsque l'objet est disposé:
using (StreamWriter sw = File.CreateText("TextOutput.txt"))
{
sw.Write(s);
}