C#學習筆記---區分StringWriter(Reader)和StreamWriter(Reader),TextWriter(Reader),BinaryWriter(Reader)


1.TextWriter(Reader)分別是對連續字符系列處理的編寫器(讀寫器),來自System.IO

2.StringWriter(Reader)繼承TextWriter(Reader),它主要是對字符串進行處理的類,樣例如下:

            TextWriter stringwriter = new StringWriter();
            stringwriter.Write("你好,通過StringWriter寫入,StringWriter繼承TextWriter");
            TextReader stringreader = new StringReader(stringwriter.ToString());
            Console.WriteLine("從{0}——{1}", stringreader.GetType().Name, stringreader.ReadToEnd());
            Console.WriteLine();

3.StreamWriter(Reader)也繼承TextWriter(Reader),它主要是以流的形式處理數據,可以是記憶流,文件流,系列端口流以及媒體視頻流等。例子:

            using (TextWriter streamwriter = new StreamWriter("mytext.txt"))
            {
                streamwriter.Write("你好,通過StreamWriter寫入,StreamWriter繼承TextWriter");
            }
            TextReader streamreader = new StreamReader("mytext.txt");
            Console.WriteLine("從{0}——{1}", streamreader.GetType().Name, streamreader.ReadToEnd());
            Console.ReadLine();

4.BinaryWriter(Reader)不繼承TextWriter(Reader),以二進制形式講基元類型寫入(讀取),並支持特定的編碼,其有廣泛的支持形式,因為它以二進制方式讀取寫入。例子:

            //BinaryWriter(Reader)
            const string filename = "test.txt";
            if (File.Exists(filename))
            {
                Console.WriteLine("{0}文件已存在!", filename);
            }
            FileStream fs = new FileStream(filename, FileMode.Create);
            BinaryWriter bw = new BinaryWriter(fs);
            string str = Environment.CurrentDirectory + @"QQ.EXE.lnk";
            bw.Write(str);
            bw.Close();
            fs.Close();
            //現在開始讀取
            fs = new FileStream(filename, FileMode.Open, FileAccess.Read);
            BinaryReader br = new BinaryReader(fs);
            long size = br.BaseStream.Length;
            byte[] bytesize = new byte[size];
            bytesize = br.ReadBytes((int)size);
            Console.WriteLine(bytesize.ToString());
            br.Close();
            fs.Close();
            Console.ReadLine();

下面再示一例BinaryWriter寫入XML信息例子:

            const string filename = "XmlWriter1.xml";
            FileStream fs = new FileStream(filename, FileMode.Create);
            BinaryWriter bw = new BinaryWriter(fs);
            XmlElement ee = xdoc.DocumentElement;
            if (ee != null)
            {
                bw.Write(ee.OuterXml);
            }
            else
            {
                Console.WriteLine("獲取對象失敗!");
            }
            bw.Close();
            fs.Close();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM