खोज…


धाराओं का उपयोग करना

एक स्ट्रीम एक ऑब्जेक्ट है जो डेटा को स्थानांतरित करने के लिए निम्न-स्तरीय साधन प्रदान करता है। वे स्वयं डेटा कंटेनर के रूप में कार्य नहीं करते हैं।

हम जिस डेटा से निपटते हैं, वह बाइट सरणी ( byte [] ) के रूप में है। पढ़ने और लिखने के कार्य सभी बाइट WriteByte() , जैसे WriteByte()

पूर्णांक, तार आदि के साथ काम करने के लिए कोई कार्य नहीं हैं। यह धारा को बहुत सामान्य-उद्देश्य बनाता है, लेकिन यदि आप कहें, तो आप पाठ को स्थानांतरित करना चाहते हैं। जब आप बड़ी मात्रा में डेटा के साथ काम कर रहे होते हैं तो स्ट्रीम विशेष रूप से बहुत सहायक हो सकती हैं।

हमें विभिन्न प्रकार के स्ट्रीम का उपयोग करने की आवश्यकता होगी, जहां इसे (यानी बैकिंग स्टोर) से लिखा / पढ़ा जाना चाहिए। उदाहरण के लिए, यदि स्रोत एक फ़ाइल है, तो हमें FileStream का उपयोग करने की आवश्यकता है:

string filePath = @"c:\Users\exampleuser\Documents\userinputlog.txt";
using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
    // do stuff here...

    fs.Close();
}

यदि बैकिंग स्टोर मेमोरी है तो इसी तरह से MemoryStream का उपयोग किया जाता है:

// Read all bytes in from a file on the disk.
byte[] file = File.ReadAllBytes(“C:\\file.txt”);

// Create a memory stream from those bytes.
using (MemoryStream memory = new MemoryStream(file))
{
   // do stuff here...
}

इसी तरह, नेटवर्क एक्सेस के लिए System.Net.Sockets.NetworkStream का उपयोग किया जाता है।

सभी स्ट्रीम जेनेरिक क्लास System.IO.Stream से ली गई हैं। डेटा को सीधे स्ट्रीम से नहीं पढ़ा या लिखा जा सकता है। .NET फ्रेमवर्क जैसे सहायक वर्गों प्रदान करता है StreamReader , StreamWriter , BinaryReader और BinaryWriter कि देशी प्रकार और निम्न स्तर के धारा इंटरफ़ेस, और करने के लिए या आप के लिए धारा से डेटा स्थानांतरित के बीच परिवर्तित।

स्ट्रीम के लिए रीडिंग और राइटिंग StreamReader और StreamWriter माध्यम से की जा सकती है। इन्हें बंद करते समय सावधानी बरतनी चाहिए। डिफ़ॉल्ट रूप से, बंद करने से निहित स्ट्रीम भी बंद हो जाएगी और इसे आगे उपयोग के लिए अनुपयोगी बना दिया जाएगा। यह डिफॉल्ट व्यवहार एक कंस्ट्रक्टर का उपयोग करके बदला जा सकता है जिसमें bool leaveOpen पैरामीटर होता है और इसका मान true

StreamWriter :

FileStream fs = new FileStream("sample.txt", FileMode.Create);
StreamWriter sw = new StreamWriter(fs);
string NextLine = "This is the appended line.";
sw.Write(NextLine);
sw.Close();
//fs.Close(); There is no need to close fs. Closing sw will also close the stream it contains.

StreamReader :

using (var ms = new MemoryStream())
{
    StreamWriter sw = new StreamWriter(ms);
    sw.Write(123);
    //sw.Close();     This will close ms and when we try to use ms later it will cause an exception
    sw.Flush();     //You can send the remaining data to stream. Closing will do this automatically
    // We need to set the position to 0 in order to read 
    // from the beginning.
    ms.Position = 0;
    StreamReader sr = new StreamReader(ms);
    var myStr = sr.ReadToEnd();
    sr.Close();
    ms.Close();
}

चूंकि कक्षाएं Stream , StreamReader , StreamWriter , आदि IDisposable इंटरफेस को लागू करते हैं, इसलिए हम इन कक्षाओं की वस्तुओं पर Dispose() विधि कह सकते हैं।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow