C# StreamWriter | C# StreamReader

C# in Hindiये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook C#.NET in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

C#.NET in Hindi | Page:908 | Format: PDF

BUY NOW DOWNLOAD READ ONLINE

C# StreamWriter | C# StreamReader: हालांकि Byte Oriented File Handling काफी Common है, फिर भी हम Character Based Streams को भी जरूरत के अनुसार उपयोग में ले सकते हैं। Character Streams को Use करने का फायदा ये होता है कि हम Unicode Characters के साथ Directly प्रक्रिया कर सकते हैं। यानी हमें किसी तरह की Casting करने की जरूरत नहीं होती। सामान्‍य रूप से Character Based File Operations Perform करने के लिए हमें FileStream को StreamReader या StreamWriter में Wrap करना होता है।

StreamWriter को TextWriter से Derive किया गया है जबकि StreamReader को TextReader से Derive किया गया है। अत: StreamWriter व StreamReader Classes में इनकी Base Class के सभी Properties व Methods Use करने के लिए Available रहते हैं, जिनके बारे में हमने पिछले Sections में Discuss किया है।

इसके अलावा WebRequest WebResponse Types को भी हम उपयोग में ले सकते हैं और इनके Alternative के रूप में हम सरल जरूरतों को पूरा करने के लिए WebClient Type को भी Use कर सकते हैं।

उदाहरण के लिए यदि हमें केवल किसी File को Web Server पर Upload करना हो या किसी Resource को Web Server से Download करना हो, तो हम इस प्रकार की जरूरत को WebClient Type द्वारा आसानी से पूरा कर सकते हैं।

Using C# StreamWriter

एक Character Based Output Create करने के लिए हमें FileStream जैसे किसी Stream Object को StreamWriter में Wrap करना होता है। StreamWriter कई Constructors Define करता है, जिसमें से निम्न को सबसे ज्यादा उपयोग में लिया जाता है:

StreamWriter(Stream stream)

यहां stream Open की जाने वाली Stream File है। ये Constructor पिछले Section में Discuss की गई विभिन्न प्रकार की Situations में विभिन्न प्रकार के Exceptions Trigger करता है। जैसे यदि stream null हो तो ArgumentNullException Exception Trigger होता है जबकि यदि Stream Output के लिए Open न हो तो ArgumentException Trigger करता है।

जब एक बार Stream Create हो जाता है, तो StreamWriter Automatically char to byte Conversion को Handle करता है तथा जब हमारा Output Related सारा Operation Complete हो जाता है, तब हमें इस Stream को भी Close() Method का प्रयोग करके Close करना होता है।

StreamWriter की Working को बेहतर तरीके से समझने के लिए हम निम्नानुसार एक Program Create कर सकते हैं, जो Keyboard से Input किए गए Text को सी/ो ही test.txt नाम की File में Write करता है तथा Keyboard से तब तक Stream को Read किया जाता है, जब तक कि User “stop” Type नहीं करता। इस Program में हम FileStream को File Create करने के लिए StreamWriter में Wrap कर रहे हैं:

File Name: StreamWriter.cs
using System.IO;
using System;

namespace CSharpFilesAndStreams
{
    class KtoD
    {
        static void Main()
        {
            string str;
            FileStream fout;

            // First, open the file stream.
            try
            {
                fout = new FileStream("test.txt", FileMode.Create);
            }
            catch (IOException exc)
            {
                Console.WriteLine("Error Opening File:\n" + exc.Message);
                return;
            }

            // Wrap the file stream in a StreamWriter.
            StreamWriter fstr_out = new StreamWriter(fout);
            try
            {
                Console.WriteLine("Enter text ('stop' to quit).");
                do
                {
                    Console.Write(": ");
                    str = Console.ReadLine();
                    if (str != "stop")
                    {
                        str = str + "\r\n"; // add newline
                        fstr_out.Write(str);
                    }
                } while (str != "stop");
            }
            catch (IOException exc)
            {
                Console.WriteLine("I/O Error:\n" + exc.Message);
            }
            finally
            {
                fstr_out.Close();
            }
        }
    }
}

// Output
   Enter text ('stop' to quit).
   : This is general text file for testing the working of StreamWriter Type. 
   : stop

इसी तरह से कुछ विशेष परिस्थितियों में निम्न StreamWriter Constructors ज्यादा उपयोगी साबित होते हैं जो किसी File को Directly Open कर देते हैं:

StreamWriter(string path)
StreamWriter(string path, bool append)

इन Constructors में path के रूप में हमें Open की जाने वाली File के नाम के साथ पूरे Path को Specify करना होता है। जबकि append Parameter को true Set करके हम Open होने वाली File में Append Mode में नए Text को Insert कर सकते हैं। दोनों ही स्थितियों में यदि Open की जाने वाली File पहले से Exist न हो, तो IOException Error Throw होता है। इन Constructors को Use करते हुए हम हमारे पिछले Program को ही निम्नानुसार Modify कर सकते हैं:

File Name: StreamWriterWithParameterConstructor.cs
using System.IO;
using System;

namespace CSharpFilesAndStreams
{
    class KtoD
    {
        static void Main()
        {
            string str;
            StreamWriter fstr_out = null;
            try
            {
                // Open the file, wrapped in a StreamWriter.
                fstr_out = new StreamWriter("test.txt");
                Console.WriteLine("Enter text ('stop' to quit).");
                do
                {
                    Console.Write(": ");
                    str = Console.ReadLine();
                    if (str != "stop")
                    {
                        str = str + "\r\n"; // add newline
                        fstr_out.Write(str);
                    }
                } while (str != "stop");
            }
            catch (IOException exc)
            {
                Console.WriteLine("I/O Error:\n" + exc.Message);
            }
            finally
            {
                if (fstr_out != null) fstr_out.Close();
            }
        }
    }
}

// Output
   Enter text ('stop' to quit).
   : This is general text file for testing the working of StreamWriter Type. 
   : stop

Using StreamReader

Character Based Input Stream Create करने के लिए हमें StreamReader को किसी Byte Stream के अन्दर ठीक उसी तरह से Wrap करना होता है, जिस तरह से Character Based Output Stream को हमने पिछले Program में FileStream में Wrap किया था। इसका सबसे ज्यादा Use होने वाला Constructor निम्नानुसार है:

StreamReader(Stream stream)

जहां stream Open की जाने वाली Stream का नाम है और ये भी विभिन्न Error प्रकार की Errors के लिए विभिन्न प्रकार के Exceptions Trigger करता है। साथ ही जब हम एक बार StreamReader का प्रयोग करके Stream Create कर देते हैं, तो StreamReader Automatically byte to char Conversion को Handle करता है। इस Type को हम निम्नानुसार तरीके से उपयोग में ले सकते हैं:

File Name: StreamReader.cs
using System.IO;
using System;

namespace CSharpFilesAndStreams
{
    class DtoS
    {
        static void Main()
        {
            FileStream fin;
            string s;
            try
            {
                fin = new FileStream("test.txt", FileMode.Open);
            }
            catch (IOException exc)
            {
                Console.WriteLine("Error Opening file:\n" + exc.Message);
                return;
            }

            StreamReader fstr_in = new StreamReader(fin);
            try
            {
                while ((s = fstr_in.ReadLine()) != null)
                {
                    Console.WriteLine(s);
                }
            }
            catch (IOException exc)
            {
                Console.WriteLine("I/O Error:\n" + exc.Message);
            }
            finally
            {
                fstr_in.Close();
            }
        }
    }
}

// Output
   : This is general text file for testing the working of StreamWriter Type.

जैसाकि हम इस Program के Output को देख सकते हैं, हमने इस Program में उसी File को Read किया है, जिसे पिछले Program द्वारा Create किया था।

हालांकि System.IO Namespace में और भी बहुत सारी Classes हैं, जिन्हें विभिन्न प्रकार की जरूरतों को पूरा करने के लिए Use किया जा सकता है। लेकिन Disk Files से सम्बंधित ज्यादातर जरूरतों को Byte Oriented Classes का प्रयोग करके पूरा किया जा सकता है। साथ ही अन्‍य विभिन्न Classes भी Exactly उसी तरह से Use होती हैं, जिस तरह से हमने इस Chapter में विभिन्न Classes को Files व Streams Related Task को पूरा करने के लिए Use किया है।

C# FileStream
Collections in C#

******

ये पोस्‍ट Useful लगा हो, तो Like कर दीजिए।

C# in Hindiये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook C#.NET in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

C#.NET in Hindi | Page:908 | Format: PDF

BUY NOW DOWNLOAD READ ONLINE

Download All Hindi EBooks

सभी हिन्दी EBooks C, C++, Java, C#, ASP.NET, Oracle, Data Structure, VB6, PHP, HTML5, JavaScript, jQuery, WordPress, etc... के DOWNLOAD LINKS प्राप्‍त करें, अपने EMail पर।

Register करके Login करें। इस Popup से छुटकारा पाएें।