خلاصه مطلب
یکی از ساده ترین روش های خواندن داده های درون فایل استفاده از کلاس BufferedReader هستش که در این جلسه به ان پرداخته شده است
فهرست جلسات دوره مقدماتی جاوا
مقدمه اول | جاوا چیست؟
مقدمه دوم | تاریخچه جاوا
مقدمه سوم | ویژگیهای زبان جاوا
جلسه اول | راهنمای دانلود و نصب JDK
جلسه دوم | اجرای یک برنامه جاوا در Notepad
جلسه سوم | راهنمای دانلود و نصب Eclipse
جلسه چهارم | ساخت اولین برنامه جاوا در Eclipse
جلسه پنجم | متغیر ها در جاوا
جلسه ششم | تغییر فونت محیط Eclipse
جلسه هفتم | عملگرهای پایه ای جاوا
جلسه هشتم | دستورات شرطی
جلسه نهم | اشیا و کلاس ها
جلسه دهم | ورودی گرفتن
جلسه یازدهم | حلقههای کنترلی
جلسه دوازدهم | کلمه کلیدی static
جلسه سیزدهم | کلاس Math
جلسه چهاردهم | کلاس String
جلسه پانزدهم | آرایههای یک بعدی
جلسه شانزدهم | کنترل سطح دسرسی (Modifiers)
جلسه هفدهم | متدها در جاوا
جلسه هجدهم | کلمه کلیدی this
جلسه نوزدهم | کلاسهای داخلی
جلسه بیستم | ارث بری در جاوا
جلسه بیست و یکم | کلمه کلیدی final
جلسه بیست و دوم | Overriding در جاوا
جلسه بیست و سوم | Polymorphism( چند ریختی)
جلسه بیست و چهارم | چندریختی را بهتر یادبگیرید
جلسه بیست و پنجم | Abstraction( انتزاع)
جلسه بیست و ششم | Encapsulation(کپسوله سازی)
جلسه بیست و هفتم | اینترفیس (Interface)
جلسه بیست و هشتم | کلاس Random
جلسه بیست و نهم | Exceptions (استثناها)
جلسه سی ام | کار با فایل در جاوا(Files and I/O)
جلسه سی و یکم | کلاس InputStreamReader
جلسه سی و دوم | کلاس OutputStreamWriter
جلسه سی و سوم | کلاس BufferedReader
جلسه سی و چهارم | کلاس BufferedWriter
جلسه سی و پنجم | Serialization در جاوا
جلسه سی و ششم | چندنخی(Multithreading)
جلسه سی و هفتم | آرایه دو بعدی در جاوا
جلسه سی و هشتم | کلاس ArrayList در جاوا
جلسه سی و نهم | Non Access Modifier در جاوا

✔ راه های زیادی برای خواندن داده ها از فایل وجود دارد که در جلسات گذشته بخشی از آنها را بررسی کردیم.در این جلسه قصد داریم ساده ترین راه خواندن اطلاعات را از فایل بررسی کنیم.
✔ راحت ترین و متداول ترین راه خوانده داده ها از یک فایل استفاده از کلاس BufferedReader می باشد.
✔ کلاس BufferedReader بسیار کارآمد برای خواندن کاراکترها،آرایه ها و سطر های درون یک فایل می باشد.
BufferedReader برای استفاده از این کلاس در برناممون باید پکیج java.io.BufferedReader را import کنیم.
| import java.io.BufferedReader; |
✔ یکی از متداول ترین سازنده های این کلاس که باهاش کار داریم بصورت زیر است:
| BufferedReader(Reader in) |
✔ این سازنده هنگام شی سازی از این کلاس بعد از کلمه کلیدی new صدا زده می شود:
| BufferedReader b = new BufferedReader(Reader in) |
✔ پارامتر این سازنده که در اینجا نامش in هستش از نوع کلاس Reader تعریف شده است.
خب اولین سوال که برامون پیش میاد کلاس Reader چیه؟!!
کلاس Reader یک کلاس از نوع انتزاعی (abstract) هستش که پدر برخی از کلاس هایی است که در زمینه خواندن فایل در جاوا استفاده می کنیم!!
.png)
مثال:
| FileReader fr=new FileReader("test.txt"); BufferedReader b = new BufferedReader(fr); |
✔ همون طور که می بینید ما بجای پارامتر موجود در سازنده کلاس BufferedReader یک شی از نوع FileReader قرار داده ایم که فرزند کلاس Reader می باشد.
✔ خب این چه کاری هست!! چرا از خود کلاس Reader شی نمی سازیم؟!!! پاسخ: دلیل این که از کلاس Reader استفاده نمی کنیم این است که کلاس Reader انتزاعی و Abstract هستش و از کلاس Abstract نمی توان شی ساخت!!!
نتیجه گیری کلی : ما به جای پارامتر موجود در سازنده کلاس BufferedReader می توانیم از اشیای تمام کلاس هایی که فرزند کلاس Reader هستش استفاده کنیم. بررسی متدهای کلاس BufferedReader :
| void close |
| int read() |
✔ یک متد نام آشنا!!! این متد بصورت کاراکتر به کاراکتر فایل ما رو میخواند. کاراکترهای خوانده شده را بصورت معادل عددی هر کاراکتر از نوع عدد صحیح بر می گرداند.مثلا اگر در فایل ما حرف a بود معادل عددی این حرف یعنی عدد 97 را برمی گرداند. خب تا اینجا متدهای این کلاس فرقی با سایر کلاس هایی که در زمینه خواندن فایل در جاوا بود نداشت!!!!!!!!!!!!!! صبر کنید متد زیر رو ببینید!!!!
| String readLine() |
✔ این متد یک سطر از متن درون فایل ما را می خواند.
✔ پرکاربرد ترین متد برای خواندن داده های درون یک فایل می باشد.
✔ متد readLine کار ما را برای خواندن داده های درون فایل ساده کرده است. چون مقداری که برمیگرداند یک سطر از متن درون فایل بصورت رشته است و دیگه نیاز نیست کاراکتر به کاراکتر فایلمون رو بخوانیم. در مثال کاربرد این متد را بررسی می کنیم.
✔ فرض کنید در کامپیوتر،پوشه پروژمون فایلی با نام و فرمت name.txt داریم که متن درون آن بصورت تصویر(2) است:
.png)
متن فایل در تصویر(2) را مشاهده کنید، محتوای درون این فایل یک متن هفت سطری می باشد،ما قصد داریم با استفاده از کلاس BufferedReader اطلاعات درون این فایل را بخوانیم:
| package www.javapro.ir; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.InputStream; import java.io.InputStreamReader; import fileIO.fileStreamTest; public class BufferedReaderDemo { public static void main(String[] args) throws Exception { try { // open input stream name.txt for reading purpose. FileReader in = new FileReader("name.txt"); BufferedReader br = new BufferedReader(in); System.out.println(br.readLine()); Br.close(); } catch (Exception e) { e.printStackTrace(); } } } |
خروجی:
| Ali Reza hasan jafar |
✔ با وجودی که فایل ما از 7 سطر تشکیل شده بود تنها یک سطر از فایل ما خوانده شده و در محیط کنسول چاپ شده است!!!! دلیلش اینه که با هر بارصدا زدن متد readLine تنها یک سطر از فایل خوانده می شود و ما در مثال بالا فقط یکبار این متد را صدا زده ایم و در نتیجه تنها یک سطر از فایل ما خوانده شده است.
| در دوره پیشرفته برنامه نویسی جاوا به صورت ویدئویی به موضوع فایل ها در جاواپرداخته ایم. |
برای خواندن تمامی سطرهای فایلمون بصورت زیر عمل می کنیم
| package www.javapro.ir;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileReader;import java.io.InputStream;import java.io.InputStreamReader; import fileIO.fileStreamTest; public class BufferedReaderDemo { public static void main(String[] args) throws Exception { try { // open input stream name.txt for reading purpose. String thisLine = new String(); FileReader in = new FileReader("name.txt"); BufferedReader br = new BufferedReader(in); while ((thisLine = br.readLine()) != null) { System.out.println(thisLine); } Br.close(); } catch (Exception e) { e.printStackTrace(); } } } |
خروجی:
| Ali Reza hasan jafar mohammad @javalike www.javapro.ir Rahman zarei 9510126047 Rahman.zarie92@gmail.com |
| String thisLine = new String(); |
✔ تعریف یک متغیر از نوع String ، هر سطر از فایل بعد از خوانده شدن در این متغیر ریخته می شود.
| FileReader in = new FileReader("name.txt"); BufferedReader br = new BufferedReader(in); |
✔ برای خواندن فایل از کلاس BufferedReader استفاده شده است. همان طور که گفتیم پارامتر سازنده این کلاس باید از نوع یکی از کلاس های فرزند Reader باشد که ما در اینجا کلاس FileReader را انتخاب کردیم و آدرس محل فایل در کامپیوترمون رو بهش داده ایم.
| "name.txt" |
| while ((thisLine = br.readLine()) != null) { System.out.println(thisLine); } |
✔ بلوک try-catch نیز برای کنترل استثناهای احتمالی در زمینه کار با فایل می باشد.
این مبحث از کار با فایل نیز تمام شد ، لازمه یادگیری کار با فایل دیدن مثال های گوناگون و فراوان می باشد. که دارم سعی میکنم مثال هایی در همه زمینه مباحث جاوا را به امید خدا طراحی کنم و روی سایت قرار دهم.
موفق و پیروز باشی😊❤✔🌼🌺🍀🌸

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

