بررسي عمليات ورودي و خروجي (بخش اول)
 
فناوری های پیشرفته
Advanced Technolog
 
 
شنبه 13 خرداد 1391برچسب:, :: 11:46 ::  نويسنده : فناوری پیشرفته

ادامه مطلب: : : : . . . . .

از آنجا كه stream قرار است با تمامي دستگاه‌هاي فيزيكي ارتباط برقرار كند، تمامي عمليات در سطوح پايين خود با byte‌ها سر و كار دارد، اما يك مشكل وجود دارد. همان طور كه مي‌دانيد نوع داده byte در #C برابر ۸ بيت است و يك كاراكتر برابر ۱۶بيت (به دليل پشتيباني از Unicode)، اگر داده‌ها به صورت ASCII كد باشد مشكلي نيست؛ اما در سيستم Unicode مشكل به وجود مي‌آيد. براي حل اين اشكال كلاس‌هايي براي تبديل داده‌هاي متني به ارائه‌اي از byte‌ها و همين طور برعكس طراحي شده است كه به شما كمك مي‌كند براحتي عمليات ورودي و خروجي را انجام دهيد.

برخي جريان‌داده‌هايي در #C از پيش تعريف شده ‌است كه براي دسترسي به آنها بايد از فضاي نام System در برنامه خود استفاده كنيد. در زير آنها را به صورت فهرست‌وار بيان مي‌كنيم:

Console.Out:

به استاندارد خارجي در #C متصل است و زماني مقدار مي‌گيرد كه متد Console.WriteLine يا
Console.Write فراخواني مي‌شود.

Console.In:

به استاندارد ورودي در #C متصل است و زماني مقدار مي‌گيرد كه متد Console.Read يا Console.ReadLine فراخواني شود.

Console.Error:

يك ارجاع به جريان‌داده‌اي خطاها متصل است.

تمامي اين جريان داده‌ها كه در بالا توضيح داده شد با توجه به دستگاه‌هاي ورودي و خروجي شما متفاوت است و مطابق با آن، دستگاه عمل مي‌كند.

بررسي كلاس‌هاي اصلي جريان داده‌اي در net.

تمامي اين كلاس‌ها در فضاي نام System.IO موجود است. اين فضاي نام شامل Stream بوده كه يك كلاس پايه براي تمامي كلاس‌هايي است كه با جريان داده‌ها كار مي‌كند.

برخي الگو‌ها و ويژگي‌هاي اصلي اين كلاس را بررسي مي‌كنيم.

الگو‌ها

Close:

يك جريان داده‌اي را مي‌بندد، به اين معني كه انتقال اطلاعات از طريق آن جريان داده ديگر امكان‌پذير نيست‌.

Flush:

ReadByte:

(Read (byte[] buf, int offset, int numbyte:

اين الگو شروع به خواندن يك بلاك از داده‌ها از جريان داده‌‌هاي ورودي مي‌كند و آن را از نقطه[​buf [offset به اندازه numbyte مي‌خواند، سپس هر تعداد بايتي را كه موفق به خواندن آنها شده‌است، بر مي‌گرداند.

(Write (byte b:

(Write (byte[] buf, int offset, int numBytes:

(long Seek (long offset, SeekOrigin origin:

هميشه براي كار با يك جريان داده به يك نقطه آغاز نياز داريد. اگر بعد از چند بار از يك جريان داده اطلاعات بخوانيد يا روي آن بنويسيد، موقعيت مكاني روي آن جريان داده تغيير مي‌كند، اما بعضي وقت‌ها نياز است كه خود شما به صورت دستي اين موقعيت مكاني را تغيير دهيد. در اين حالت با استفاده از متد Seek مي‌توانيد روي يك جريان داده حركت كنيد.
متغير‌هاي ورودي اين متد مانند Read است، فقط به جاي اين كه آن بلاك داده را بخوانند، ‌آن را روي جريان داده‌اي مي‌نويسد.
يك بايت داده را در يك جريان داده‌اي مي‌نويسد.
يك عدد صحيح برمي‌گرداند كه مشخص مي‌كند مي‌تواند از آن منبع جريان داده بخواند يا خير. اگر به انتهاي فايل يا به انتهاي يك جريان داده رسيده باشد، عدد ۱ـ‌ را بر مي‌گرداند در غير اين صورت تعداد Byte‌هايي را كه خوانده برمي‌گرداند.
محتويات يك شيء جريان داده را روي دستگاه فيزيكي مرتبط با آن مي‌نويسد.

ويژگي‌هاي كلاس Stream

CanRead:

مشخص مي‌كند كه از يك جريان داده مي‌توان اطلاعاتي را دريافت كرد يا خير.

CanWrite:

CanSeek:

Length:

Position:

تمامي ويژگي‌هايي كه در بالا ذكر شد فقط به صورت خواندني است؛ يعني شما نمي‌توانيد به آنها مقدار بدهيد. وقتي يك شيء از Stream‌ ايجاد كرديد اين ويژگي‌ها مقدار مي‌گيرند.

اميربهاءالدين سبط‌ الشيخ

موقعيت مكاني يك جريان داده را مشخص مي‌كند
اندازه يك جريان داده را مشخص مي‌كند
مشخص مي‌كند كه مي‌توان موقعيت مكاني روي يك جريان داده را تغيير داد يا خير.
مشخص مي‌كند كه مي‌توان روي يك جريان داده اطلاعاتي را نوشت يا خير.

منبع: کلیک جام جم


نظرات شما عزیزان:

نام :
آدرس ایمیل:
وب سایت/بلاگ :
متن پیام:
:) :( ;) :D
;)) :X :? :P
:* =(( :O };-
:B /:) =DD :S
-) :-(( :-| :-))
نظر خصوصی

 کد را وارد نمایید:

 

 

 

عکس شما

آپلود عکس دلخواه:







درباره وبلاگ


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

تبادل لینک هوشمند
  ابتدا ما را با عنوان فناوری پیشرفته و آدرس roboiran.LXB.ir لینک نمایید سپس مشخصات لینک خود را در زیر نوشته . در صورت وجود لینک ما در سایت شما لینکتان به طور خودکار در سایت ما قرار میگیرد.





نويسندگان


ورود اعضا:

آمار وب سایت:  

بازدید امروز : 21
بازدید دیروز : 5
بازدید هفته : 28
بازدید ماه : 71
بازدید کل : 67422
تعداد مطالب : 218
تعداد نظرات : 99
تعداد آنلاین : 1