C# में स्ट्रीम: स्ट्रीमरीडर और स्ट्रीमWriter [उदाहरण]

⚡ स्मार्ट सारांश

AC# स्ट्रीम आपके एप्लिकेशन और फ़ाइल के बीच एक लेयर है जो आपको छोटे-छोटे टुकड़ों में डेटा पढ़ने या लिखने की सुविधा देती है। यहां आप StreamReader और Stream का उपयोग करना सीखेंगे।Writer उदाहरणों और मुख्य प्रकारों सहित कार्यविधि।

  • 🌊 यह क्या है: स्ट्रीम आपके एप्लिकेशन और फ़ाइल के बीच एक मध्यवर्ती परत है।
  • 📖 स्ट्रीमरीडर: StreamReader एक समय में एक पंक्ति या अंश के रूप में फ़ाइल से पाठ पढ़ता है।
  • ✍️ धाराWriter: धाराWriter यह स्ट्रीम के माध्यम से टेक्स्ट को फाइल में लिखता है।
  • 🧩 स्ट्रीम के प्रकार: फ़ाइलस्ट्रीम, मेमोरीस्ट्रीम, और BufferedStream के सभी भाग Stream क्लास से व्युत्पन्न होते हैं।
  • 🤖 एआई सहायता: GitHub Copilot जैसे AI टूल तुरंत C# स्ट्रीम कोड जनरेट करते हैं।

C# स्ट्रीम रीडर और Writer

C# स्ट्रीम क्या है?

C# फ़ाइल संचालन में, आम तौर पर स्ट्रीम का उपयोग फ़ाइलों को पढ़ने और लिखने के लिए किया जाता है। स्ट्रीम एक अतिरिक्त परत है जो किसी एप्लिकेशन और फ़ाइल के बीच बनाई जाती है। स्ट्रीम का उपयोग फ़ाइल को सुचारू रूप से पढ़ने और लिखने के संचालन को सुनिश्चित करने के लिए किया जाता है।

स्ट्रीम का इस्तेमाल आम तौर पर बड़ी फ़ाइलों से डेटा पढ़ते समय किया जाता है। स्ट्रीम का इस्तेमाल करके, बड़ी फ़ाइलों से डेटा को छोटे-छोटे टुकड़ों में तोड़कर स्ट्रीम में भेजा जाता है। फिर डेटा के इन टुकड़ों को एप्लिकेशन से पढ़ा जा सकता है।

इसे छोटे-छोटे टुकड़ों में तोड़ने का कारण एक बार में बड़ी फ़ाइल को पढ़ने के प्रदर्शन पर पड़ने वाला प्रभाव है। अगर आप एक बार में 100 एमबी की फ़ाइल से डेटा पढ़ते हैं, तो आपका एप्लिकेशन हैंग हो सकता है और अस्थिर हो सकता है। सबसे अच्छा तरीका यह है कि फ़ाइल को प्रबंधनीय टुकड़ों में तोड़ने के लिए स्ट्रीम का उपयोग किया जाए।

इसलिए जब फ़ाइल पर कोई लेखन कार्य किया जाता है, तो लिखे जाने वाले डेटा को सबसे पहले स्ट्रीम में लिखा जाता है। स्ट्रीम से, डेटा को फिर फ़ाइल में लिखा जाता है। रीड ऑपरेशन के लिए भी यही बात लागू होती है। रीड ऑपरेशन में, डेटा को सबसे पहले फ़ाइल से स्ट्रीम में स्थानांतरित किया जाता है। फिर स्ट्रीम के ज़रिए एप्लिकेशन से डेटा को पढ़ा जाता है। आइए एक उदाहरण देखें कि हम स्ट्रीम का उपयोग करके कैसे पढ़ और लिख सकते हैं।

C# में स्ट्रीम के प्रकार

C# में सभी स्ट्रीम क्लास एब्सोल्यूट क्लास से व्युत्पन्न होती हैं।tract Stream कक्षा में System.IO नेमस्पेस। प्रत्येक प्रकार एक अलग डेटा स्रोत को लक्षित करता है लेकिन समान रीड और राइट विधियों को साझा करता है। सबसे अधिक उपयोग किए जाने वाले स्ट्रीम नीचे सूचीबद्ध हैं।

  • फ़ाइल स्ट्रीम यह डिस्क पर मौजूद फाइलों से एक-एक बाइट या ब्लॉक करके डेटा पढ़ता और लिखता है।
  • मेमोरीस्ट्रीम यह डेटा को फाइल के बजाय मेमोरी में स्टोर करता है, जो अस्थायी बफर के लिए उपयोगी है।
  • Bufferएडस्ट्रीम यह धीमी डिस्क या नेटवर्क प्रक्रियाओं की संख्या को कम करने के लिए एक अन्य स्ट्रीम को रैप करता है।
  • नेटवर्कस्ट्रीम नेटवर्क सॉकेट के माध्यम से डेटा भेजता और प्राप्त करता है।

टेक्स्ट के साथ काम करने के लिए, C# निम्नलिखित सुविधाएँ प्रदान करता है: StreamReader और StreamWriter सहायक क्लासें, जो एक स्ट्रीम को रैप करती हैं और अगले अनुभागों में इनके बारे में बताया गया है।

स्ट्रीम रीडर

स्ट्रीम रीडर का उपयोग स्ट्रीम का उपयोग करके फ़ाइल से डेटा पढ़ने के लिए किया जाता है। फ़ाइल से डेटा को पहले स्ट्रीम में पढ़ा जाता है। उसके बाद एप्लिकेशन स्ट्रीम से डेटा पढ़ता है।

हमारे उदाहरण के लिए, हम मान लेंगे कि हमारे पास D ड्राइव में Example.txt नामक एक फ़ाइल है। फ़ाइल एक साधारण टेक्स्ट फ़ाइल होगी और इसमें 2 लाइनें होंगी जैसा कि नीचे दिखाया गया है

  • Guru99 – .नेट
  • Guru99 -सी#

हमारे उदाहरण के लिए, हम एक सरल कंसोल एप्लिकेशन बनाएंगे और फ़ाइल स्ट्रीम के साथ काम करेंगे

आइए एक उदाहरण देखें कि हम फ़ाइल से डेटा पढ़ने के लिए स्ट्रीम का उपयोग कैसे कर सकते हैं। नीचे दिए गए कोड को program.cs फ़ाइल में दर्ज करें।

स्ट्रीम रीडर

using System;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
  class Tutorial
  {
   static void Main(string[] args)
   {
    String path = @"D:\Example.txt";

    using (StreamReader sr = File.OpenText(path))
    {
     String s = "";

     while ((s = sr.ReadLine()) != null)
     {
      Console.WriteLine(s);
     }
    }
   Console.ReadKey();
  }
 }
}

Code स्पष्टीकरण: -

  1. सबसे पहले, हम स्ट्रीम रीडर ऑब्जेक्ट घोषित कर रहे हैं। स्ट्रीम रीडर ऑब्जेक्ट का उपयोग C# में फ़ाइल से एप्लिकेशन तक स्ट्रीम को परिभाषित करने के लिए किया जाता है। जब भी फ़ाइल से डेटा पढ़ा जाएगा, तो डेटा फ़ाइल से स्ट्रीम में धकेल दिया जाएगा। फ़ाइल।OpenText फ़ाइल “Example.txt” को केवल पढ़ने के लिए मोड में खोलने के लिए उपयोग किया जाता है। फ़ाइल के हैंडलर को फिर स्ट्रीम रीडर ऑब्जेक्ट पर भेजा जाता है।
  2. इसके बाद, हम एक अस्थायी चर 's' परिभाषित कर रहे हैं जिसका उपयोग फ़ाइल से सभी डेटा को पढ़ने के लिए किया जाएगा।
  3. फिर हम स्ट्रीम बफर से प्रत्येक लाइन को पढ़ने के लिए स्ट्रीम रीडर विधि ReadLine का उपयोग करते हैं। जब हम यह करते हैं आपरेशन, प्रत्येक पंक्ति को पहले फ़ाइल से बफर में स्थानांतरित किया जाएगा। फिर स्ट्रिंग लाइन को बफर से वेरिएबल 's' में स्थानांतरित किया जाएगा। फिर हम स्ट्रिंग 's' की सामग्री को कंसोल में लिखते हैं।

जब उपरोक्त कोड सेट किया जाता है, और प्रोजेक्ट का उपयोग करके चलाया जाता है विजुअल स्टूडियो, आपको नीचे दिया गया आउटपुट मिलेगा।

आउटपुट: -

स्ट्रीम रीडर

आउटपुट से आप देख सकते हैं कि स्ट्रीम रीडर ने फ़ाइल से दोनों लाइनें पढ़ीं। अंत में, स्ट्रीम से पढ़ी गई स्ट्रिंग की लाइनें कंसोल को भेजी गईं।

धारा Writer

स्ट्रीम राइटर का उपयोग स्ट्रीम का उपयोग करके फ़ाइल में डेटा लिखने के लिए किया जाता है। एप्लिकेशन से डेटा सबसे पहले स्ट्रीम में लिखा जाता है। उसके बाद स्ट्रीम फ़ाइल में डेटा लिखता है। आइए एक उदाहरण देखें कि हम फ़ाइल से डेटा लिखने के लिए स्ट्रीम का उपयोग कैसे कर सकते हैं। नीचे दिए गए कोड को program.cs फ़ाइल में दर्ज करें।

धारा Writer

using System;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
  class Tutorial
  {
   static void Main(string[] args)
   {
    String path = @"D:\Example.txt";
    
    using (StreamWriter sr = File.AppendText(path))
    {
     sr.WriteLine("Guru99 - ASP.Net");
     sr.Close();

     Console.WriteLine(File.ReadAllText(path));
    }
    Console.ReadKey();
  }
 }
}

Code स्पष्टीकरण: -

  1. सबसे पहले, हम एक स्ट्रीम राइटर ऑब्जेक्ट घोषित कर रहे हैं। स्ट्रीम राइटर ऑब्जेक्ट का उपयोग C# में स्ट्रीम को परिभाषित करने के लिए किया जाता है। फिर स्ट्रीम का उपयोग एप्लिकेशन से फ़ाइल में डेटा लिखने के लिए किया जाता है। जब भी डेटा लिखने की आवश्यकता होगी, डेटा को एप्लिकेशन से स्ट्रीम में पुश किया जाएगा। File.AppendText कमांड का उपयोग फ़ाइल “Example.txt” को एपेंड मोड में खोलने के लिए किया जाता है। फिर फ़ाइल के हैंडलर को स्ट्रीम राइटर ऑब्जेक्ट पर भेजा जाता है।
  2. हम "Writeline" स्ट्रीम राइट विधि का उपयोग करके पंक्ति लिख रहे हैं।Guru99 – ASP.Net” को स्ट्रीम में डालें। स्ट्रीम से, लाइन को फिर फ़ाइल में लिखा जाएगा।
  3. फिर हम फ़ाइल में लिखने के बाद स्ट्रीम राइटर को बंद कर देते हैं। जब फ़ाइल लिखने के लिए ज़रूरी न रह जाए, तो फ़ाइल हैंडलर को बंद करना आम तौर पर एक अच्छा अभ्यास है।
  4. अंत में, हम फ़ाइल की सामग्री को फिर से पढ़ रहे हैं और इसे कंसोल लॉग में लिख रहे हैं। यह जाँचने के लिए है कि क्या लाइन फ़ाइल में लिखी गई थी।

जब उपरोक्त कोड सेट हो जाता है, और प्रोजेक्ट को विजुअल स्टूडियो का उपयोग करके चलाया जाता है, तो आपको नीचे दिया गया आउटपुट मिलेगा।

आउटपुट: -

धारा Writer

आउटपुट से आप देख सकते हैं कि पंक्ति “Guru99 – ASP.Net” को फ़ाइल में सफलतापूर्वक जोड़ दिया गया है। टेक्स्ट की तीनों लाइनें कंसोल में देखी जा सकती हैं।

अक्सर पूछे जाने वाले प्रश्न

स्ट्रीम किसी एप्लिकेशन और फ़ाइल के बीच की एक मध्यवर्ती परत होती है। यह बड़ी फ़ाइलों को छोटे-छोटे टुकड़ों में तोड़ देती है ताकि पूरी फ़ाइल को मेमोरी में लोड किए बिना डेटा को पढ़ा या लिखा जा सके।

StreamReader एक स्ट्रीम के माध्यम से फ़ाइल से टेक्स्ट डेटा पढ़ता है। फ़ाइल।OpenText यह एक StreamReader लौटाता है, और इसका ReadLine मेथड फ़ाइल को एक-एक लाइन करके पढ़ता है।

धाराWriter यह टेक्स्ट डेटा को स्ट्रीम के माध्यम से फ़ाइल में लिखता है। File.AppendText एक स्ट्रीम लौटाता है।Writerऔर इसका WriteLine मेथड प्रत्येक लाइन को फाइल में भेजता है।

सामान्य स्ट्रीम में फाइलों के लिए फाइलस्ट्रीम और मेमोरी में मौजूद डेटा के लिए मेमोरीस्ट्रीम शामिल हैं। Bufferबफरिंग के लिए edStream और सॉकेट के लिए NetworkStream। ये सभी abs से व्युत्पन्न हैं।tracटी स्ट्रीम क्लास।

FileStream किसी फ़ाइल में कच्चे बाइट्स को पढ़ता और लिखता है, जबकि StreamReader एक स्ट्रीम को अक्षरों और पंक्तियों के रूप में पाठ पढ़ने के लिए रूपांतरित करता है। StreamReader पाठ फ़ाइलों के लिए अधिक सरल है।

GitHub Copilot, Autocomplete, StreamReader और Stream जैसे AI सहायकWriter कोड में, निपटान के लिए यूजिंग ब्लॉक जोड़ें, और एक छोटी टिप्पणी से फ़ाइल-पठन लूप उत्पन्न करें।

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

'using' स्टेटमेंट ब्लॉक समाप्त होने पर स्ट्रीम को स्वचालित रूप से बंद कर देता है और उसका निपटान कर देता है, भले ही कोई त्रुटि हो जाए। इससे फ़ाइल हैंडल मुक्त हो जाता है और संसाधन लीक होने से बचाव होता है।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: