کار با فایل در زبان سی شارپ – آموزش زبان سی شارپ

csharp file io 4563 تصویر

کار با فایل در زبان سی شارپ

یک فایل مجموعه ای از اطلاعات ذخیره شده در یک دیسک می باشد که دارای یک نام و مسیر دایرکتوری خاص است. هنگامی یک فایل برای خواندن یا نوشتن باز می شود، به یک جریان (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

مشخص می کند که فایل در چه حالتی باز شود و شامل موارد زیر است:

  • Append : یک فایل موجود را باز می کند و نشانگر را به انتهای آن می برد. اگر فایل موجود نباشد، آن را ایجاد می کند.
  • Create : یک فایل جدید ایجاد می کند.
  • CreateNew : برای سیستم عامل مشخص می کند که باید یک فایل جدید ایجاد کند.
  • Open : یک فایل موجود را باز می کند.
  • OpenOrCreate : برای سیستم عامل مشخص می کند که باید یک فایل را در صورت وجود داشتن باز کند و در غیر این صورت آن را ایجاد کند.
  • Truncate : یک فایل موجود را باز می کند و اندازه بایت های آن را به صفر می رساند.
۲ FileAccess

نوع دسترسی به فایل را مشخص می کند و شامل موارد زیر است:

  • Read
  • ReadWrite
  • Write
۳ FileShare

FileShare شامل موارد زیر است:

  • Inheritable : به فایل اجازه می دهد تا وراثت را به پروسه های فرزند خود انتقال دهد.
  • None : از اشتراک گذاری فایل جاری جلوگیری می کند.
  • Read : اجازه می دهد تا فایل را برای خواندن باز کند.
  • ReadWrite : اجازه می دهد تا فایل را برای خواندن و نوشتن باز کند.
  • Write : اجازه می دهد تا فایل را برای نوشتن باز کند.

مثال

مثال زیر نحوه استفاده از کلاس 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# اجازه می دهد تا فایل ها و دایرکتوری های ویندوز را دستکاری کند.

نوشته کار با فایل در زبان سی شارپ – آموزش زبان سی شارپ اولین بار در سورس سرا – آموزش برنامه نویسی. پدیدار شد.

درباره نویسنده: administrator

ممکن است دوست داشته باشید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *