इसके बजाय, TextWriter
का उपयोग करके देखें (जो एक मोटे तौर पर समान एपीआई है, लेकिन जो फ़ाइलों सहित, अंतर्निहित स्थलों में से एक नंबर को लिख सकते हैं) - यानी
using(TextWriter writer = File.CreateText(path))
{
// loop etc
writer.Write(...);
}
आम तौर पर, यह अलग करने के लायक है कोड है कि कोड है कि डेटा लिखने के लिए कैसे के बारे में जानता से फाइल के बारे में जानता है, यानी
using(var writer = File.CreateText(path))
{
Serialize(writer);
}
...
void Serialize(TextWriter writer)
{
...
}
इस आसान विभिन्न लक्ष्यों को लिखने के लिए बनाता है। उदाहरण के लिए, आप अब भी इन-स्मृति कर सकते हैं:
var sw = new StringWriter();
Serialize(sw);
string text = sw.ToString();
बिंदु जा रहा है: अपने Serialize
कोड एक अलग लक्ष्य को समायोजित करने के बदलने की जरूरत नहीं किया। यह सीधे नेटवर्क पर लिख रहा है, या संपीड़न/एन्क्रिप्शन स्ट्रीम के माध्यम से लिख रहा है। बहुत बहुमुखी।
स्रोत
2011-11-04 10:51:31
क्या आप केवल एक स्ट्रिंगबिल्डर में डालने और इसे एक साथ करने के बजाय आपके द्वारा जोड़े गए पाठ के साथ File.WriteAllText नहीं कर सकते हैं? –
@ बाली 'WriteAllText' को कॉल करने के लिए आपको सभी टेक्स्ट की आवश्यकता है, ताकि स्मृति समस्याओं के साथ मदद नहीं मिलेगी –
@MarcGravell Ah हाँ, मेरी गलती, धन्यवाद मार्क –