✔ راه های زیادی برای خواندن داده ها از فایل وجود دارد که در جلسات گذشته بخشی از آنها را بررسی کردیم.در این جلسه قصد داریم ساده ترین راه خواندن اطلاعات را از فایل بررسی کنیم.
✔ راحت ترین و متداول ترین راه خوانده داده ها از یک فایل استفاده از کلاس 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) هستش که پدر برخی از کلاس هایی است که در زمینه خواندن فایل در جاوا استفاده میکنیم!!
مثال:
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) است:
متن فایل در تصویر(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. print ln(br.readLine()); Br.close(); } catch (Exception e) { e. print StackTrace(); } } } |
خروجی:
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; publicclass BufferedReaderDemo { publicstaticvoid 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. print ln(thisLine); } Br.close(); } catch (Exception e) { e. print StackTrace(); } } } |
خروجی:
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. print ln(thisLine); } |
✔ بلوک try-catch نیز برای کنترل استثناهای احتمالی در زمینه کار با فایل است.
این مبحث از کار با فایل نیز تمام شد، لازمه یادگیری کار با فایل دیدن مثال های گوناگون و فراوان است. که دارم سعی میکنم مثال هایی در همه زمینه مباحث جاوا را به امید خدا طراحی کنم و روی سایت قرار دهم.
موفق و پیروز باشی😊❤✔🌼🌺🍀🌸
این جلسه آموزشی را میتوانید بصورت کتاب الکترونیکی (PDF شده) در لینک زیر دریافت کنید.
این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)
لینک دانلود
بستن *نام و نام خانوادگی * پست الکترونیک * متن پیام |
دوره های آموزشی برنامه نویسی
انجام پروژه های برنامه نویسی
تدریس خصوصی برنامه نویسی
بیش از 7 سال از فعالیت جاواپرو میگذرد
جاواپرو دارای مجوز نشر دیجیتال از وزارت فرهنگ و ارشاد اسلامی است
جهت ارتباط مستقیم با جاواپرو در واتساپ و تلگرام :
09301904690
بستن دیگر باز نشو! |