सवाल:
क्या के बीच अलग है FileStreamऔर StreamWriterमें नेट ?
आप इसे किस संदर्भ में उपयोग करने वाले हैं? उनका फायदा और नुकसान क्या है?
क्या इन दोनों को एक में जोड़ना संभव है?
सवाल:
क्या के बीच अलग है FileStreamऔर StreamWriterमें नेट ?
आप इसे किस संदर्भ में उपयोग करने वाले हैं? उनका फायदा और नुकसान क्या है?
क्या इन दोनों को एक में जोड़ना संभव है?
जवाबों:
डॉटनेट में FileStream और StreamWriter के बीच क्या अंतर है?
ए FileStreamहै ए Stream। सभी धाराओं की तरह यह केवल byte[]डेटा से संबंधित है।
ए StreamWriter : TextWriter, स्ट्रीम-डेकोरेटर है। एक TextWriter स्ट्रिंग या चार जैसे पाठ डेटा को एनकोड करता है byte[]और फिर इसे लिंक से लिखता है Stream।
आप इसे किस संदर्भ में उपयोग करने वाले हैं? उनका फायदा और नुकसान क्या है?
byte[]डेटा होने पर आप नंगे FileStream का उपयोग करते हैं । StreamWriterजब आप पाठ लिखना चाहते हैं तो आप जोड़ते हैं। अधिक जटिल डेटा लिखने के लिए एक फ़ॉर्मैटर या एक धारावाहिक का उपयोग करें।
क्या इन दोनों को एक में जोड़ना संभव है?
हाँ। StreamWriter बनाने के लिए आपको हमेशा एक स्ट्रीम की आवश्यकता होती है। सहायक विधि System.IO.File.CreateText("path")उन्हें संयोजन में बनाएगी और फिर आपको केवल बाहरी लेखक को डिस्पोज़ () करना होगा।
एक FileStream स्पष्ट रूप से काम करने वाली फ़ाइलों के लिए अभिप्रेत है।
किसी भी प्रकार की स्ट्रीम - नेटवर्क सॉकेट, फाइल आदि को स्ट्रीम करने के लिए एक स्ट्रीमव्यूटर का उपयोग किया जा सकता है ।
स्कॉटगू विभिन्न स्ट्रीम वस्तुओं को यहां बहुत अच्छी तरह से समझाता है: http://www.codeguru.com/Csharp/Csharp/cs_data/streaming/article.php/c4223
ठीक है, के लिए MSDN से FileStream:
एक फ़ाइल के चारों ओर एक स्ट्रीम का विस्तार करता है, दोनों तुल्यकालिक और अतुल्यकालिक पढ़ने और लिखने के संचालन का समर्थन करता है।
और इसके लिए MSDN StreamWriter:
किसी विशेष एन्कोडिंग में एक स्ट्रीम में वर्ण लिखने के लिए एक TextWriter लागू करता है।
सबसे स्पष्ट अंतर यह है कि FileStreamपढ़ने / लिखने के संचालन की अनुमति देता है, जबकि StreamWriterकेवल लिखना है।
StreamWriterपृष्ठ जोड़ने के लिए पर चला जाता है:
StreamWriter एक विशेष एन्कोडिंग में चरित्र आउटपुट के लिए डिज़ाइन किया गया है, जबकि स्ट्रीम से प्राप्त कक्षाएं बाइट इनपुट और आउटपुट के लिए डिज़ाइन की गई हैं।
तो दूसरा अंतर यह है कि FileStreamबाइट्स के लिए है, जबकि StreamWriterपाठ के लिए है।
वे दो अलग-अलग स्तर हैं जिनका उपयोग ज्ञात डेटा स्रोतों की जानकारी के उत्पादन में किया जाता है।
A FileStreamएक प्रकार की स्ट्रीम है, जो वैचारिक रूप से एक तंत्र है जो किसी स्थान को इंगित करता है और उस स्थान से आने वाले और / या बाहर जाने वाले डेटा को संभाल सकता है। फ़ाइलें, नेटवर्क कनेक्शन, मेमोरी, पाइप, कंसोल, डीबग और ट्रेस श्रोताओं, और कुछ अन्य प्रकार के डेटा स्रोतों को पढ़ने / लिखने के लिए स्ट्रीम मौजूद हैं। विशेष रूप से, FileStreamफ़ाइल सिस्टम पर रीड एंड राइट लिखने के लिए मौजूद है। अधिकांश धाराएँ उनके उपयोग में निम्न स्तर की हैं, और बाइट्स के रूप में डेटा के साथ व्यवहार करती हैं।
एक StreamWriterस्ट्रीम के लिए एक आवरण है जो उस धारा का उपयोग करके सरल पाठ को आउटपुट करने के लिए सरल करता है। यह उन तरीकों को उजागर करता है जो बाइट्स के बजाय स्ट्रिंग्स लेते हैं, और बाइट सरणियों से और उनसे आवश्यक रूपांतरण करते हैं। अन्य लेखक हैं; आपके द्वारा उपयोग किया जाने वाला दूसरा मुख्य है XmlTextWriter, जो XML प्रारूप में डेटा लिखने की सुविधा देता है । राइटर्स के रीडर समकक्ष भी हैं जो एक स्ट्रीम लपेटते हैं और डेटा को वापस लाने की सुविधा प्रदान करते हैं।
FileStreamएक प्रकार की धारा है, जो विशेष रूप से फाइलों की ओर बनाई जाती है। धाराएँ मूल रूप से बाइट्स के साथ काम करती हैं, हालांकिStreamWriter/ रीडर किसी भी स्ट्रीम पर टेक्स्ट लिख / पढ़ेगा , न कि सिर्फFileStreamएस। उदाहरण के लिए,MemoryStreams,NetworkStreams, आदि ..