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



  • ۱۴
  • مهر

جلسه ۱۷ : فایل ها در جاوا

  • دسته‌بندی‌ها :
جلسه ۱۷ : فایل ها در جاوا
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرنو کاربرانی که دوره کامل آموزش برنامه نویسی جاوا را دنبال می کنند. جاوا به عنوان یک زبان کامل و محبوب در دنیا و مانند سایر زبان های برنامه نویسی قابلیت پشتیبانی از ایجاد و مدیریت فایل ها را برخوردار است. بسته java.io شامل تقریبا هر کلاسی است که شما برای انجام ورودی و خروجی (I / O) و کار با فایل ها به آن در جاوا نیاز داشته باشید. همه ی این stream (جریان ها) یک منبع ورودی و یک مقصد خروجی هستند. stream در بسته java.io بسیاری از داده ها مانند اولیه، شی، شخصیت های محلی و غیره را پشتیبانی می کند. برای آشنایی با چگونگی کار با فایل ها در جاوا و خواندن و نوشتن فایل ها  در ادامه ی مباحث فوق با ما همراه باشید.

      کار با فایل ها در جاوا

      در ادامه ی آموزش کار با فایل ها در جاوا ابتدا شما را با مفاهیم اصلی کار با فایل ها در جاوا آشنا می کنیم، سپس به بررسی جزئیات بیشتر می پردازیم.

      آشنایی با stream

      stream می تواند به عنوان یک توالی از داده ها تعریف شود. دو نوع stream وجود دارد:

      • InPutStream : نوع InputStream برای خواندن داده از یک منبع مورد استفاده قرار می گیرد.
      • OutPutStream : نوع OutputStream نیز برای نوشتن داده در یک منبع مورد استفاده قرار می گیرد.

      جاوا پشتیبانی قوی و قابل انعطاف برای I / O مربوط به فایل ها و شبکه ها را ارائه می دهد.

      در ادامه ی مباحث کار با فایل ها در جاوا جزئیات بیشتری در مورد I / O در اختیار شما قرار می دهیم.

      byte stream

      byte stream در جاوا برای انجام ورودی و خروجی از بایت های ۸ بیتی استفاده می کند.

      اگر چه کلاسهای زیادی در ارتباط با جریانهای بایت وجود دارد اما کلاسهای اغلب استفاده شده FileInputStream و FileOutputStream هستند.

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

      مثال:

      مثال : 

      سپس فایل input.txt را در سیستم خود ایجاد می کنیم که دارای محتوای زیر است:

      مثال : 

      به عنوان یک گام بعدی، برنامه فوق را کامپایل و آن را اجرا می کنیم.

      در نتیجه فایل output.txt با محتوای مشابه در input.txt ایجاد می شود.

      بنابراین، کد بالا را در فایل CopyFile.java قرار داده و موارد زیر را انجام دهید:

      مثال : 

      Character streams (کاراکترهای stream)

      Byte stream برای انجام ورودی و خروجی از بایت های ۸ بیتی استفاده می کند. در حالی که Character streams برای انجام ورودی و خروجی برای یونیکد ۱۶ بیتی مورد استفاده قرار می گیرند.

      اگر چه کلاسهای زیادی برای جریانهای شخصیت وجود دارد اما کلاسهای اغلب استفاده شده FileReader و FileWriter هستند.

      داخل FileReader از FileInputStream استفاده می کند و FileWriter نیز از FileOutputStream استفاده می کند.

      تفاوت در این است که FileReader دو بایت را در یک زمان می خواند و FileWriter دو بایت را در یک زمان می نویسد.

      مثال – برای نمونه ایجاد فایل های input.txt و output.txt را با استفاده از FileReader و FileWriter به شما نشان می دهیم:

      مثال : 

      سپس فایل input.txt را با محتوای زیر ایجاد می کنیم:

      مثال : 

      به عنوان یک گام بعدی، برنامه فوق را کامپایل و آن را اجرا می کنیم.

      در نتیجه فایل output.txt با محتوای مشابه در input.txt ایجاد می شود.

      بنابراین، کد بالا را در فایل CopyFile.java قرار داده و موارد زیر را انجام دهید:

      مثال : 

      stream استاندارد

      تمام زبان های برنامه نویسی پشتیبانی از استاندارد I / O را ارائه می دهند که کاربر می تواند از صفحه کلید ورودی بدهد و سپس یک خروجی روی صفحه کامپیوتر ایجاد کند.

      اگر شما از زبان برنامه نویسی C یا C ++ آگاه هستید، باید از سه استاندارد STDIN، STDOUT و STDERR را بدانید.

      و به طور مشابه در جاوا نیز سه جریان استاندارد زیر فراهم شده است:

      • Standard Input : این استاندارد به عنوان ورودی کاربر از طریق صفحه کلید استفاده می شود. و در بخش System.in قرار دارد.
      • Standard Output : این استاندارد برای نمایش داده های تولید شده توسط سیستم روی صفحه نمایش استفاده می شود و در بخش System.out قرار دارد.
      • Standard Error : برای نمایش خطاهای ایجاد شده ی کاربر استفاده شده و توسط System.err ارائه می شود.

      مثال – کد زیر یک برنامه ی ساده است که InputStreamReader را برای خواندن ورودی تا زمانیکه کاربر حرف “q” را نزده ایجاد می کند:

      مثال : 

      سپس کد بالا را در فایل ReadConsole.java نگه داریم و سعی کنید آن را کامپایل و اجرا کنید.

      سپس مشاهده می کنید که برنامه ی فوق تا زمانیکه حرف ‘q’ را وارد نکرده اید به خواندن ورودی ادامه می دهد:

      مثال : 

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

      همانطور که قبلا توضیح داده شد، یک stream می تواند به عنوان دنباله ای از داده ها تعریف شود.

      InputStream برای خواندن داده ها از یک منبع استفاده می شود و OutputStream برای نوشتن داده ها به مقصد استفاده می شود.

      در اینجا یک سلسله مراتب از کلاسها برای InputStream  و OutputStream است:

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

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

      در ادامه ی مباحث کار با فایل ها در جاوا دو مبحث FileInputStream و FileOutputStream را مورد بررسی قرار می دهیم:

      FileInputStream

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

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

      سپس ساختار یک نام پرونده را به عنوان یک رشته می گیرد تا یک شیء ورودی را برای خواندن فایل ایجاد کند:

      مثال : 

      ابتدا یک شیء فایل با استفاده از متد ()File به صورت زیر ایجاد می کنیم:

      مثال : 

      هنگامی که شیء InputStream را در دست دارید، به لیستی از متدهای کمکی دسترسی دارید.

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

      ردیفمتد و توضیحات مربوطه
      ۱public void close() throws IOException{}

      این متد stream خروجی فایل را بسته است. هر گونه منابع سیستم مربوط به فایل را منتشر می کند. IOException را پر می کند.

      ۲protected void finalize()throws IOException {}

      این متد اتصال به فایل را پاک می کند. اطمینان حاصل می کند که متد نزدیک این جریان خروجی فایل نامیده می شود.

      ۳public int read(int r)throws IOException{}

      این متد بایت مشخص شده داده از InputStream را می خواند. و یک int را باز می گرداند.

      ۴public int read(byte[] r) throws IOException{}

      این متد، r.length bytes را از جریان ورودی به آرایه را می خواند. اگر پایان فایل باشد، -۱ بازگشت داده خواهد شد.

      ۵public int available() throws IOException{}

      تعداد بایت هایی را می توان از input stream  فایل خواند.که یک int را باز می گرداند.

      FileOutputStream

      FileOutputStream برای ایجاد یک فایل و نوشتن اطلاعات در آن استفاده می شود.

      در این روش اگر فایلی از قبل وجود نداشته باشد آن را ایجاد می کند.

      در اینجا دو ساختار هستند که می توانند برای ایجاد یک شی FileOutputStream استفاده شوند.

      سپس ساختار یک نام فایل را به عنوان یک رشته می گیرد تا یک شیء ورودی را برای نوشتن فایل ایجاد کند:

      مثال : 

      برای نمونه ابتدا یک شیء فایل با استفاده از متد () File به صورت زیر ایجاد می کنیم:

      مثال : 

      هنگامی که به شیء OutputStream دسترسی دارید ، لیستی از متدهای کمکی نیز برای نوشتن داده ها در Stream یا عملیات دیگر ارائه می شود:

      ردیفمتد و توضیحات مربوطه
      ۱public void close() throws IOException{}

      این متد output stream را می بندد و منابع مربوط به فایل را نیز منتشر می کند.

      ۲protected void finalize()throws IOException {}

      این متد اتصال فایل را پاک می کند و اطمینان حاصل می کند که متد بسته شده ی فایل نامگذاری شده است.

      ۳public void write(int w)throws IOException{}

      این متد بایت مشخص شده را به output stream می نویسد.

      ۴public void write(byte[] w)

      نوشته های w.length bytes را از آرایه بایت ذکر شده به OutputStream منتقل می کند.

      مثال – در زیر نمونه ای برای نشان دادن InputStream و OutputStream ارائه شده است:

      مثال : 

      کد بالا فایل test.txt را ایجاد کرده و اعداد داده شده را در قالب باینری می نویسد.

      دایرکتوری ها در جاوا

      دایرکتوری یک فایل است که خود می تواند یک لیست از فایل ها و دایرکتوری های دیگر باشد.

      شما از شی File استفاده می کنید تا دایرکتوری ها را ایجاد کنید و فایل های موجود در دایرکتوری را لیست کنید.

      ایجاد دایرکتوری

      دو متد File وجود دارد که می توان از آن ها برای ایجاد دایرکتوری ها استفاده کرد.

      • ()mkdir : این متد یچ دایرکتوری را ایجاد کرده و نتیجه ی موفقیت یا عدم موفقیت در ایجاد فایل را نشان می دهد.
      • ()mkdirs: این متد یک دایرکتوری را به همراه تمام دایرکتوری های والد آن ایجاد می کند.

      مثال – به عنوان نمونه دایرکتوری “/tmp/user/java/bin” را ایجاد می کنیم:

      مثال : 

      کد فوق را اجرا و کامپایل کنید تا دایرکتوری “/tmp/user/java/bin” ایجاد شود.

      نکته : اگر از جاوا در ویندوز استفاده می کنید برای مشخص کردن مسیر از اسلش (/) استفاده کنید.گ

      لیست کردن دایرکتوری ها

      شما می توانید از متد ( )list که توسط شیء File ارائه شده برای لیست کردن تمام فایل ها و دایرکتوری های موجود در یک دایرکتوری استفاده کنید.

      مثال :

      مثال : 

      در نتیجه دایرکتوری ها و فایل های موجود در / tmp شما تولید می شود.

      خروجی :

      مثال : 

      کلام آخر

      قابلیت کار با فایل ها در اغلب زبان های برنامه نویسی جامع و محبوب در دنیا ارائه شده است. جاوا نیز به عنوان محبوب ترین زبان برنامه نویسی در دنیا این قابلیت پرکاربرد را برای برنامه نویسان فراهم کرده است. از این رو برای آشنایی شما با چگونگی کار با فایل ها در جاوا مباحث زیر را ارائه دادیم.

      QR:  جلسه ۱۷ : فایل ها در جاوا
      به اشتراک بگذارید


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