यहां अन्य उत्तरों पर थोड़ा विस्तार करने के लिए, और उदाहरण के बहुत सारे कोड को समझाने में सहायता करें, जिसके बारे में आप बिंदीदार देखेंगे, अधिकतर समय आप सीधे स्ट्रीम नहीं पढ़ते और लिखते हैं। स्ट्रीम स्थानांतरित करने के लिए स्ट्रीम निम्न स्तर के साधन हैं।
आप देखेंगे कि पढ़ने और लिखने के लिए कार्य सभी बाइट उन्मुख हैं, उदा। WriteByte()। पूर्णांक, स्ट्रिंग इत्यादि से निपटने के लिए कोई फ़ंक्शन नहीं हैं। यह स्ट्रीम को सामान्य उद्देश्य प्रदान करता है, लेकिन अगर काम करने के लिए काम करना आसान है, तो आप टेक्स्ट को स्थानांतरित करना चाहते हैं।
हालांकि, .NET उन वर्गों को प्रदान करता है जो देशी प्रकारों और निम्न-स्तरीय स्ट्रीम इंटरफ़ेस के बीच परिवर्तित होते हैं, और डेटा को आपके लिए या स्ट्रीम से स्थानांतरित करते हैं। कुछ उल्लेखनीय ऐसे वर्ग हैं:
StreamWriter // Badly named. Should be TextWriter.
StreamReader // Badly named. Should be TextReader.
BinaryWriter
BinaryReader
इन का उपयोग करने के लिए, पहले आपको अपनी स्ट्रीम प्राप्त है, तो आप के ऊपर वर्गों में से एक बना सकते हैं और धारा के साथ संबद्ध। जैसे
MemoryStream memoryStream = new MemoryStream();
StreamWriter myStreamWriter = new StreamWriter(memoryStream);
StreamReader और StreamWriter देशी प्रकार और उनके स्ट्रिंग अभ्यावेदन के बीच कनवर्ट तो करने के लिए और बाइट्स के रूप में धारा से तार हस्तांतरण। तो
myStreamWriter.Write(123);
धारा में "123" (तीन वर्ण '1', '2' फिर '3') लिखेंगे। यदि आप टेक्स्ट फ़ाइलों (उदा। एचटीएमएल) से निपट रहे हैं, तो StreamReader और StreamWriter वे कक्षाएं हैं जिनका आप उपयोग करेंगे।
myBinaryWriter.Write(123);
जबकि 32-बिट पूर्णांक मूल्य 123 का प्रतिनिधित्व चार बाइट्स लिखेंगे (0x7B, 0x00, 0x00, 0x00)। यदि आप बाइनरी फाइलों या नेटवर्क प्रोटोकॉल से निपट रहे हैं तो बाइनरी रीडर और बाइनरीवाइटर आप जो भी उपयोग कर सकते हैं। (आप नेटवर्क या अन्य प्रणालियों के साथ डेटा का आदान प्रदान कर रहे हैं, आप endianness के प्रति जागरूक होने की जरूरत है, लेकिन यह एक और पद है।)
आप http://stackoverflow.com/questions/507747/can-you-explain-the-concept-of-streams – Preets
बाइट्स की एक सरणी लें और फिर इसके लिए एक रैपर बनाएं ('स्ट्रीम') जो पढ़ने, लिखने और बदलने की स्थिति जैसे कुछ सहायक तरीकों का खुलासा करता है। अब आप अपने बैकिंग स्टोर (फाइलस्ट्रीम, मेमोरीस्ट्रीम) के आधार पर कक्षाएं बना सकते हैं जो 'स्ट्रीम' से प्राप्त होते हैं और विशेष बैकिंग स्टोर के आधार पर उस कार्यक्षमता पर निर्माण करते हैं। –