کامپیوتربرنامه نویسی

جاوا: InputStream را. جریان ورودی

جاوا، مانند بسیاری از زبان های برنامه نویسی مدرن، با پشتیبانی از اجرای جریان داده های ورودی. در جاوا InputStream را کلاس پایه برای جریان بایت است. این کلاس انتزاعی است، این است که در این دوره از برنامه ما می توانیم یک نمونه از آن را ایجاد کنید. با این حال، بسته یو دارای مجموعه ای از کلاس هایی است که به ارث می برند و گسترش قابلیت های InputStream را. برای استفاده از این کلاس در کد خود، باید آن را از بسته java.io.InputStream وارد شود. بعد، ما از قابلیت های اساسی که از کلاس InputStream را فراهم می کند، و کلاس های اصلی که آن را پیاده سازی در نظر بگیرید.

روش های کلاس InputStream را

قبل از اقدام به مطالعه دقیق از روش های کلاس InputStream و لازم به ذکر است که آن را پیاده سازی رابط Closeable و AutoCloseable. رابط Closeable ما می گوید که در اتمام کار با جریان آن را لزوما باید بسته شود. این کار با یک نزدیک روش انجام می شود (). از آنجا که بسیاری از روش های کلاس InputStream را در مورد یک خطا تولید نوع استثنا IOException، تمام عملیات مورد نیاز برای انجام یک بلوک try و نزدیک متد () در نهایت به طوری که آن بسته به نتیجه عمل افتاد که سعی کنید بدن یک واحد است.

رابط AutoCloseable به طور قابل توجهی کاهش می دهد، میزان نگهداری کد، از آن اجازه می دهد تا نزدیک () روش کار به طور خودکار و به کد خود اضافه کنید در نهایت مسدود کند. اگر شما استفاده از نسخه هفتم و یا بعد از جاوا، یک InputStream را می توان در به اصطلاح امتحان کنید با منابع که تمام عملیات برای بستن جریان طول می کشد بیش قرار داده است.

روش های اساسی از کلاس InputStream را در نظر بگیرید:

  • اعضای هیات دسترس () - یک عدد به عنوان خوانده شده از بایت؛
  • اعضای هیات به عنوان خوانده شده () - طول می کشد بایت فعلی منبع و نمایندگی عدد صحیح را بر می گرداند. اگر تمام بایت خوانده، -1 بازگشته است.
  • اعضای هیات به عنوان خوانده شده (بایت [] بافر) - بار مطالعه شده است بایت در دسترس گفت بافر در قالب یک نوع آرایه ای از بایت (تعداد بایت خواندن بافر به اندازه مشخص شده برابر و برمی گرداند تعداد بایت موفق بخوانید و اگر تمام بایت های موجود به عنوان خوانده شده، باز می گرداند -1)؛
  • اعضای هیات به عنوان خوانده شده (بایت [] بافر، اعضای هیات افست، تعداد اعضای هیات بایت) - بیش از حد از روش قبلی، همان می کند، اما با یک موقعیت "جبران" مشخص می خواند به همان اندازه که در "تعداد بایت" را تعیین کنید.
  • جست و خیز بلند (تعداد بایت طول) - تعداد پرش بایت و تعداد واقعی از دست رفته را برمی گرداند.

InputStream را چندین کلاس برای کار با منابع و انواع داده های مختلف اجرا شده است. در زیر درخت ارث نشان می دهد.

خواندن فایل های

جریان بایتی به خواندن داده ها از فایل های اجرا کلاس FileInputStream. برای باز کردن فایل برای خواندن بایت، به اندازه کافی برای ایجاد یک نمونه از کلاس، عبور به سازنده آن نام فایل به عنوان یک استدلال. اگر این فایل را به نام منتقل وجود ندارد، آن را به یک استثنا از نوع FileNotFoundException پرتاب.

در صورت باز کردن یک فایل موفق، کار با آنها است با استفاده از روش بالا توضیح انجام شده، به عنوان جانشین FileInputStream InputStream را است.

خواندن انواع داده اولیه

در مثال بالا شرح کار با مقادیر بایت، که می تواند به عنوان علامت تفسیر شده است. اما اگر ما نیاز به خواندن یک عدد صحیح، کسری یا یک مقدار بولی؟ برای انجام این کار در جاوا InputStream را به طور غیر مستقیم گسترش می یابد DataInputStream طبقاتی. این کلاس یک لفاف بسته بندی برای InputStream و که آن را در ایجاد به عنوان یک بحث سازنده گذشت است. این نوع از موضوع خواند اطلاعات به صورت باینری.

DataInputStream نیز پیاده سازی رابط DataInput و روش خود را برای خواندن انواع داده اولیه. در زیر لیستی از این روش ها است.

نام روش برای خود صحبت می کنند - هر یک از آنها طراحی شده است برای خواندن یک نوع داده است.

جریان ورودی بافر

بافر جریان خواندن داده ها کلاس BufferedInputStream در جاوا تحقق یابد. InputStream را توسط این کلاس پیچیده می شود. این کلاس مکمل جریان بافر، اجازه می دهد شما را به خواندن در همان زمان نه یکی، بلکه چند بایت است. این باعث می شود این امکان را به طور قابل توجهی بهبود عملکرد عملیات. BufferedInputStream نسل InputStream را غیر مستقیم است و در نتیجه به ارث تمام روش های ذکر شده در بالا.

این کلاس دارای دو سازنده:

  • BufferedInputStream (InputStream را جریان ورودی)؛
  • BufferedInputStream (InputStream را جریان ورودی، اعضای هیات بافر اندازه)

امضاء از طراحان را می توان درک کرد که اولین مجموعه به اندازه بافر به طور پیش فرض، و در دوم ممکن است به آن را تنظیم دستی.

نتیجه

ما در تحقق پایه InputStream که بررسی می شود. اگر شما نیاز به تبدیل بایت دریافت شده به یک رشته در جاوا InputStream را به رشته ()، متاسفانه، غیرمنتظره نیست، پس از آن مجبور به استفاده از ابزار خاص، به عنوان مثال IOUtils از کتابخانه آپاچی عوام.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 fa.atomiyme.com. Theme powered by WordPress.