دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۲۵
  • مرداد

جلسه ۵۶ : استفاده از Stream I/O در زبان #C

  • دسته‌بندی‌ها :
جلسه ۵۶ : استفاده از Stream I/O در زبان #C
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه :

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، با دوره کامل آموزش #C در خدمت شما دوستان هستیم . در بخش قبل با Indexer ها در زبان #c آشنا شدید. در این قسمت قصد داریم شما را Stream I/O در زبان #C یا ورودی/خروجی در #C و Stream های خواندن و نوشتن در این زبان آشنا کنیم.

      #C شامل کلاس های استاندارد IO (ورودی / خروجی) برای خواندن / نوشتن از منابع مختلف مانند فایل، حافظه، شبکه، ذخیره سازی جداگانه و … می باشد.

      Stream :  فضای نام System.IO.Stream یک کلاس انتزاعی (abstract) است که متد های استاندارد را برای انتقال بایت ها (خواندن، نوشتن و … ) به منابع را فراهم می کند. Stream برای انتقال بایت مانند یک کلاس wrapper عمل میکند. کلاس هایی که نیاز به خواندن و نوشتن بایت از یک منبع خاص را دارند، باید از کلاس Stream ارث بری کنند.

      کلاس های زیر برای ارائه قابلیت خواندن / نوشتن بایتها از کلاس Stream ارث بری می کنند:

      FileStream (خواندن/نوشتن) بایت (از/در) یک فایل فیزیکی است که از فرمتهای txt، exe، jpg یا هر فایل دیگری پشتیبانی می کند. FileStream از کلاس Stream مشتق شده است.

      MemoryStream بایت هایی را در حافظه ذخیره و یا آنها را می خواند .

      BufferedStream برای بهبود عملکرد برخی از عملیات I / O، بایت هایی را از حافظه میخواند و یا در حافظه می نویسد.

      NetworkStream خواندن یا نوشتن بایت از یک سوکت شبکه.

      PipeStream خواندن یا نوشتن بایت از فرآیندهای مختلف.

      CryptoStream برای اتصال داده ها به cryptographic transformations است.

      نمودار زیر سلسله مراتب کلاس های Stream را نشان می دهد:

      Stream I/O

      Stream I/O

      Stream های خواندن و نوشتن :

      StreamReader: StreamReader یک کلاس کمکی برای خواندن کاراکترها از یک Stream با تبدیل بایت به کاراکترها با استفاده از یک مقدار کد شده است. این را می توان برای خواندن رشته ها (characters) از Stream های مختلف مانند FileStream، MemoryStream، و … استفاده می شود.

      StreamWriter: StreamWriter یک کلاس کمکی برای نوشتن یک رشته در یک Stream با تبدیل کاراکترها به بایت است. برای نوشتن رشته ها در Stream های مختلف مانند FileStream، MemoryStream، و … از آن استفاده میکنیم.

      BinaryReader: BinaryReader یک کلاس کمکی برای خواندن داده های اولیه از بایتها است.

      BinaryWriter: BinaryWriter یک کلاس کمکی برای نوشتن داده های اولیه در بایتها است.

      File Stream

      File Stream

       

      تصویر بالا نشان می دهد که FileStream بایت را از یک فایل فیزیکی می خواند و سپس StreamReader با تبدیل این بایت ها به رشته ها آنها را قابل استفاده می کند. همانطور که StreamWriter یک رشته را گرفته و آن را به bytes تبدیل می کند و به FileStream می فرستد و سپس FileStream بایت ها را در یک فایل فیزیکی ذخیره می کند. بنابراین FileStream با بایت ها و StreamReader و StreamWriter با رشته ها در ارتباط هستند.

       

      چند نکته مهم جهت بخاطر سپردن :

      1. Stream یک کلاس انتزاعی برای انتقال بایت از منابع مختلف است. این کلاس برای تمام کلاس های دیگری که بایت ها را در یا از منابع مختلف می نویسد یا میخوانند یک کلاس پایه است.
      2. کلاس FileStream وظیفه خواندن و نوشتن بایت ها را به فایل فیزیکی برعهده دارد.
      3. #C دارای کلاسهای خواندن و نوشتن زیادی است که قابلیت خواندن یا نوشتن بایت از یا در کلاس های Stream (FileStream، MemoryStream و …) را دارند.
      4. StreamReader بایت ها را از FileStream  خوانده و آنها را تبدیل به رشته برای استفاده در برنامه می کند. StreamWriter نیز رشته ها را تبدیل به بایت کرده و در FileStream می نویسد تا در ادامه FileStream  آنها را به صورت بایت (فیزیکی) در حافظه ذخیره کند.

       

      در این بخش کلاس Stream و کلاس های درون آن را جهت کار با ورودی ها و خروجی ها در زبان #C معرفی کردیم .

      در قسمت بعد قصد داریم در رابطه با نحوه نوشتن و خواندن از فایل ها از File System صحبت کنیم.

      QR:  جلسه ۵۶ : استفاده از Stream I/O در زبان #C
      به اشتراک بگذارید


      دیدگاه کاربران
      1. تصویر کاربر