آموزش خواندن فایل دودویی در سی شارپ

خواندن فایل دودویی

کلاس 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);
        }
    }
}

امیدوارم برایتان مفید بوده باشد !
نظرات و پیشنهاداتتان را با من در میان بگذارید!
موفق باشید !

داریوش فرخی

داریوش فرخی هستم از سال 92 شروع به یادگیری برنامه نویسی و از سال 93 در بخش برنامه نویسی و تولید محتوای سایت mspsoft.com مشغول هستم. فعالیتم نیز بیشتر در زمینه های برنامه نویسی با سی شارپ و asp.net بوده است. اوقات فراغتم را هم غالبا با تماشای فیلم یا بازی های کامپیوتری پر میکنم .

نوشته‌های مرتبط

دیدگاه‌ها

*
*

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.