کلاس System.IO.BinaryReader برای خواندن انواع داده ای .NET بدوی مانند دودویی در یک encoding خاص شامل ASCII ، Unicode ، UTF32 ، UTF7 و UTF8. در این مقاله با هم به سراغ خواندن فایل دودویی در سی شارپ و .NET خواهیم رفت.
ایجاد یک BinaryReader
سازنده ی BinaryWriter فرم ها را برای پشتیبانی یک Stream و encoding ، Overload میکند. قطعه کد کوچک زیر شئ BinaryWriter را با یک Stream و فرمت کاراکتر encoding ایجاد میکند.
BinaryReader binReader = new BinaryReader(File.Open(fileName, FileMode.Open) Encoding ascii = Encoding.ASCII; BinaryWriter bwEncoder = new BinaryWriter(new FileStream(fileName, FileMode.Create), ascii);
خواندن فایل دودویی
خواندن متد Overload شده نیز برای نوشتن نوع داده ی بدوی در یک Stream به کار میرود. متد Write میتواند یکی از انواع Boolean ، Byte ، Char ، Decimal ، Double و Integer را بنویسد. BinaryReader نیز همچنین متد هایی با نوع داده ای به خصوصی مانند ReadString ، ReadInt32 و از این قبیل ارائه میدهد. قطعه کد زیر انواع مختلفی از داده های مختلف را با استفاده از متد های مربوطه میخواند.
string authorName = binReader.ReadString(); int age = binReader.ReadInt32(); string bookTitle = binReader.ReadString(); bool mvp = binReader.ReadBoolean(); double price = binReader.ReadDouble();
مثال
در زیر میتوانید یک نمونه ی کامل ایجاد فایل دودویی و افزودن داده به آن را مشاهده کنید.
public class BinaryReadWriteClass { public void WriteBinary() { try { Console.WriteLine("Binary Writer"); string authorName = "Mahesh Chand"; int age = 30; string bookTitle = "ADO.NET Programming using C#"; bool mvp = true; double price = 54.99; string fileName = @"C:\temp\MC.bin"; BinaryWriter bwStream = new BinaryWriter(new FileStream(fileName,FileMode.Create)); Encoding ascii = Encoding.ASCII; BinaryWriter bwEncoder = new BinaryWriter(new FileStream(fileName, FileMode.Create), ascii); using (BinaryWriter binWriter = new BinaryWriter(File.Open(fileName, FileMode.Create))) { // Write string binWriter.Write(authorName); // Write string // Write integer binWriter.Write(age); binWriter.Write(bookTitle); // Write boolean binWriter.Write(mvp); // Write double binWriter.Write(price); } Console.WriteLine("Data Written!"); Console.WriteLine(); } catch (IOException ioexp) { Console.WriteLine("Error: {0}", ioexp.Message); } } }
امیدوارم برایتان مفید بوده باشد !
نظرات و پیشنهاداتتان را با من در میان بگذارید!
موفق باشید !
دیدگاهها