2009-12-04 5 views

Antwort

13

Ja, tut es.

Wenn dies nicht der Fall ist, gibt es keine Möglichkeit, es später zu schließen, da es nichts zur Entsorgung zurückgibt.

Von the docs:

einen String und einen Dateipfad gegeben, diese Methode öffnet die angegebene Datei, fügt die Zeichenfolge an das Ende der Datei und schließt dann die Datei.

Die anderen Hilfsmethoden (ReadAllText, WriteAllBytes usw.) auf die gleiche Weise.

+0

Danke Ich war geneigt, einen StreamWriter zu verwenden, aber das scheint so viel einfacher. –

+0

Es scheint eine Benennungskonvention zu sein, dass alle IO-Methoden, die 'All' enthalten, die zugrunde liegenden Streams, zB' File.AppendAllLines', 'File.AppendAllText',' File.ReadAllBytes', 'File.ReadAllLines', 'File.ReadAllText',' File.WriteAllLines', 'File.WriteAllText'. Es ist keine Garantie, aber eine gute Gedächtnisstütze. –

+0

@TimSchmelter: Ich würde gehen "Gibt es einen Stream/Reader/Writer?" Wenn nicht, sollte es alles schließen (da es nichts anderes tun kann). Wenn dies der Fall ist, gibt es nichts zurück, was bereits geschlossen ist. –

4

Dies ist der Code der Methode:

public static void AppendAllText(string path, string contents, Encoding encoding) 
{ 
    using (StreamWriter writer = new StreamWriter(path, true, encoding)) 
    { 
     writer.Write(contents); 
    } 
} 

Deshalb, ja.

+3

Ich glaube nicht, dass es eine gute Idee ist, sich auf die Implementierungsdetails zu verlassen, es sei denn, Sie müssen dies unbedingt tun. Implementierungen können sich ändern. Zum Glück ist es in diesem Fall explizit dokumentiert. –

Verwandte Themen