تبدیل آرایه بایت به فایل در c#

آخرین بروز رسانی: 1401/07/16

خیلی پیش میاد که بخایم دیتایی از جنس byte array  رو تو فایل ذخیره کنیم(مثلن فایل اپلود شده توسط کاربر). بیایید چند روش مختلف برای تبدیل یک آرایه بایت به یک فایل در نظر بگیریم.

با استفاده از BinaryWriter و FileStream

BinaryWriter به زبان ساده کلاسی است که به ذخیره رشته ها  با encoding های مختلف و همچنین داده های باینری خام در فایل ها یا مکان های حافظه , کمک می کند.

public static void SaveByteArrayToFileWithBinaryWriter(byte[] data, string filePath)
{
    using var writer = new BinaryWriter(File.OpenWrite(filePath));
    writer.Write(data);
}

 

با استفاده از فقط FileStream 

FileStream توانایی دستکاری داده ها رو داره و  متدهایی داره که می تونه به ما تو نوشتن داده ها در یک فایل کمک کنه، اما در مقایسه با کلاس BinaryWriter تعداد گزینه های محدودی داره.

از آنجایی که ما در اینجا یه کار ساده با byte array انجام میدیم، این کار رو با استفاده از FileStream به تنهایی پیاده سازی کنیم:

public static void SaveByteArrayToFileWithFileStream(byte[] data, string filePath)
{
    using var stream = File.Create(filePath);
    stream.Write(data, 0, data.Length);
}

💡دلیل استفاده کردن از using var در 2 مثال بالا اینه که  منابع سیستم قفل شده رو پس از اتمام استفاده از آنها  , آزادمیکنه.

 

با استفاده از متد ()File.WriteAllBytes

public static void SaveByteArrayToFileWithStaticMethod(byte[] data, string filePath)
  => File.WriteAllBytes(filePath, data);

 

نتیجه
ما راه های مختلفی را برای تبدیل یک آرایه بایت به یک فایل بررسی کرده ایم. ظاهراً هیچ راه مشخصی برای تعیین بهترین انتخاب وجود ندارد.

با این وجود، همیشه باید بر اساس نیاز خود انتخاب کنید. آخرین روش زمانی خوبه که شما  یخاید قط باید یک فایل رو به سریع ذخیره کنید و به کارهای دیگه برسید. ولی، اگر نیاز به انجام اقدامات یا پردازش بیشتر روی stream دارید، باید یکی از دو مورد اول را انتخاب کنید.

نظر دهید

آدرس ایمیل شما منتشر نخواهد شد. فیلدهای الزامی علامت گذاری شده اند *