2009-12-04 12 views

उत्तर

13

हां, यह करता है।

यदि ऐसा नहीं होता है, तो बाद में इसे बंद करने का कोई तरीका नहीं होगा क्योंकि यह निपटाने के लिए कुछ भी वापस नहीं करता है।

the docs से:

एक स्ट्रिंग और एक फ़ाइल पथ को देखते हुए इसे विधि निर्दिष्ट फ़ाइल को खोलता है, फ़ाइल के अंत में स्ट्रिंग जोड़ देती है, और फिर फ़ाइल को बंद कर देता है।

अन्य उपयोगिता विधियों (ReadAllText, WriteAllBytes आदि) वैसे ही काम करते हैं। , हाँ

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

इसलिए:

+0

धन्यवाद मैं स्ट्रीमवाइटर का उपयोग करने के इच्छुक था, लेकिन यह इतना आसान लगता है। –

+0

ऐसा लगता है कि सभी आईओ विधियां जिनमें 'सभी' अंतर्निहित धाराओं का निपटान/बंद होते हैं, fe: 'File.AppendAllLines', 'File.AppendAllText',' File.ReadAllBytes', 'File.ReadAllLines', 'File.ReadAllText',' File.WriteAllLines', 'File.WriteAllText'। यह कोई गारंटी नहीं है लेकिन एक अच्छा निमोनिक है। –

+0

@TimSchmelter: मैं जाऊंगा "क्या यह एक स्ट्रीम/पाठक/लेखक लौटाता है?" यदि नहीं, तो यह सब कुछ बंद करना चाहिए (क्योंकि ऐसा कुछ और नहीं कर सकता है)। यदि ऐसा होता है, तो यह आपको कुछ ऐसा नहीं लौटाएगा जो पहले ही बंद हो चुका है। –

4

इस विधि का कोड है।

+3

मुझे नहीं लगता कि कार्यान्वयन विवरणों पर भरोसा करना एक अच्छा विचार है जबतक कि आपको बिल्कुल नहीं करना है। कार्यान्वयन बदल सकते हैं। सौभाग्य से इस मामले में यह स्पष्ट रूप से दस्तावेज है। –

संबंधित मुद्दे