کار با فایل در زبان سی شارپ
یک فایل مجموعه ای از اطلاعات ذخیره شده در یک دیسک می باشد که دارای یک نام و مسیر دایرکتوری خاص است. هنگامی یک فایل برای خواندن یا نوشتن باز می شود، به یک جریان (Stream) تبدیل می گردد.
به طور کلی یک جریان توالی از بایت های می باشد که از طریق یک مسیر ارتباطی ارسال می شوند. جریان ورودی (Input Stream) و جریان خروجی (Output Stream) دو نوع جریان اصلی در مبحث فایل ها هستند. جریان ورودی به منظور خواندن داده ها از فایل (عملیات خواندن) و جریان خروجی به منظور نوشتن داده ها در فایل (عملیات نوشتن) استفاده می شود.
کلاس های I/O در زبان سی شارپ
فضای نام System.IO شامل کلاس های مختلفی است که به منظور انجام عملیات های متعدد بر روی فایل ها (مانند خواندن، نوشتن، حذف و غیره) تولید شده است.
در جدول زیر برخی از کلاس های رایج و non-abstract موجود در این فضای نام را مشاهده می کنید:
ردیف | توضیحات |
۱ | BinaryReader
به منظور خواندن داده های اولیه از یک جریان باینری استفاده می شود. |
۲ | BinaryWriter
به منظور نوشتن داده های اولیه در قالب باینری استفاده می شود. |
۳ | BufferedStream
یک فضای ذخیره سازی موقت برای جریانی از بایت ها است. |
۴ | Directory
برای مدیریت ساختار دایرکتوری استفاده می شود. |
۵ | DirectoryInfo
برای انجام عملیات های مختلف بر روی دایرکتوری ها استفاده می شود. |
۶ | DriveInfo
اطلاعات درایوها را فراهم می کند. |
۷ | File
به منظور دستکاری فایل ها استفاده می شودد |
۸ | FileInfo
برای انجام عملیات های مختلف بر روی فایل ها استفاده می شود. |
۹ | FileStream
به منظور نوشتن یا خواندن از هر محلی در فایل استفاده می شود. |
۱۰ | MemoryStream
به منظور دسترسی تصادفی به داده های ذخیره شده در حافظه استفاده می شود. |
۱۱ | Path
برای انجام عملیات های مختلف بر روی اطلاعات مسیر استفاده می شود. |
۱۲ | StreamReader
به منظور خواندن کاراکترها از یک جریان بایت ها استفاده می شود. |
۱۳ | StreamWriter
به منظور نوشتن کاراکترها در یک جریان استفاده می شود. |
۱۴ | StringReader
برای خواندن از یک بافر رشته استفاده می شود. |
۱۵ | StringWriter
برای نوشتن در یک بافر رشته استفاده می شود. |
کلاس FileStream
کلاس FileStream که در فضای نام System.IO قرار دارد، به منظور نوشتن، خواندن و بستن فایل ها استفاده می شود. به منظور ایجاد یک فایل جدید و یا باز کردن فایلی که قبلا وجود داشته است، باید از این کلاس نمونه سازی کنید. در زیر سینتکس کلی استفاده از این کلاس را مشاهده می کنید:
FileStream <object_name> = new FileStream( <file_name>, <FileMode Enumerator>, <FileAccess Enumerator>, <FileShare Enumerator>);
در مثال زیر، ما یک نمونه از این کلاس را با نام F ایجاد کردیم تا محتوای فایل sample.txt را بخوانیم:
FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read, FileShare.Read);
در جدول زیر پارامترهای مربوط به سازنده کلاس FileStream را مشاهده می کنید:
ردیف | توضیحات |
۱ | FileMode
مشخص می کند که فایل در چه حالتی باز شود و شامل موارد زیر است:
|
۲ | FileAccess
نوع دسترسی به فایل را مشخص می کند و شامل موارد زیر است:
|
۳ | FileShare
FileShare شامل موارد زیر است:
|
مثال
مثال زیر نحوه استفاده از کلاس FileStream را نشان می دهد:
using System; using System.IO; namespace FileIOApplication { class Program { static void Main(string[] args) { FileStream F = new FileStream("test.dat", FileMode.OpenOrCreate, FileAccess.ReadWrite); for (int i = 1; i <= 20; i++) { F.WriteByte((byte)i); } F.Position = 0; for (int i = 0; i <= 20; i++) { Console.Write(F.ReadByte() + " "); } F.Close(); Console.ReadKey(); } } }
زمانی که کد بالا کامپایل و اجرا شود، نتیجه زیر را تولید خواهد کرد:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 -1
عملیات پیشرفته بر روی فایل در سی شارپ
مثال قبلی یک عملیات ساده را بر روی فایل انجام می دهد. با این حال به منظور استفاده از قدرت عظیم کلاس های IO در زبان C# باید با متدهای رایج این کلاس ها آشنا شوید.
ردیف | توضیحات |
۱ | خواندن و نوشتن در فایل های متنی
شامل خواندن و نوشتن در فایل های متنی با استفاده از کلاس های StreamReader و StreamWriter می باشد. |
۲ | خواندن و نوشتن در فایل های باینری
شامل خواندن و نوشتن در فایل های باینری با استفاده از کلاس های BinaryReader و BinaryWriter می باشد. |
۳ | دستکاری سیستم فایل ویندوز
به برنامه نویس C# اجازه می دهد تا فایل ها و دایرکتوری های ویندوز را دستکاری کند. |
نوشته کار با فایل در زبان سی شارپ – آموزش زبان سی شارپ اولین بار در سورس سرا – آموزش برنامه نویسی. پدیدار شد.