2017-11-24 7 views
0

Ich habe einige Probleme beim Schreiben einer Zeichenfolge MentionsInText in eine Datei mit der Systems.IO.StreamWriter entsprechend der Datei, die bearbeitet wird, wenn der Code ausgeführt wird, jedoch keinen Text in der Datei vorhanden ist. Ich bin mir nicht sicher, warum das nicht funktioniert. Mein Code ist wie folgt;Schreibe Text in Datei mit Stromschreiber

Mache ich etwas falsch bei der Verwendung von StreamWriter?

Antwort

2

Sie sollten den StreamWriter nach dem Schreiben entsorgen.

zB:

var MIS = string.Join(" ", MentionsList.ToArray()); 
string Mentionsintext = MIS.ToString(); 

using (StreamWriter MentionFile = new StreamWriter(@"C:\Users\User\Documents\Mentions.txt")) { 

     MentionFile.WriteLine(Mentionsintext + Environment.NewLine); 

} 

Weitere Beispiele: siehe https://www.dotnetperls.com/streamwriter

+0

Thank you! aus diesem würde ich richtig sagen, dass das gleiche für die Verwendung von 'streamreader' gesagt werden könnte? – bdg

+1

@bdg Sie sollten immer Streams entsorgen, wenn Sie damit fertig sind. Der einfachste Weg, dies zu tun, ist, sie in eine 'using (...)' Anweisung zu verpacken, wie Nsevens vorgeschlagen hat. Im obigen Beispiel bewirkt das Ablegen des Streams, dass 'Flush()' aufgerufen wird. Darüber hinaus werden alle nicht verwalteten Ressourcen freigegeben, die der Stream verwendet, wodurch Speicherlecks verhindert werden. – john