لیست تمامی دوره های آموزش زبان برنامه نویسی جاوا[کــلیک کنید]
در این آموزش قصد داریم یکی از روش های ساده ایجاد فایل در جاوا و نوشتن داده ها و اطلاعات درون فایل در جاوا را بررسی کنیم.یکی راه های ساده و متداول ایجاد و نوشتن فایل در جاوا استفاده از کلاس BufferedWriter است.با کلاس BufferedWriter میتوان جریانی از داده های کاراکتری،رشته، آرایه و غیره را در فایل ذخیره کنیم.
✔ برای استفاده از کلاس BufferedWriter در برنامه خود نیاز به import کردن پکیج Java.io.BufferedWriter داریم:
import java.io.BufferedWriter; |
✔ یکی از متداول ترین سازنده کلاس BufferedWriter بصورت زیر است:
BufferedWriter(Writer out) |
✔ هنگام شی سازی از کلاس BufferedWriter بعد از کلمه کلیدی new این سازنده صدا زده میشود و پارامتر درون پرانتز آن مقدار دهی میکنیم.
BufferedWriter bw = new BufferedWriter(Writer out) |
✔ پارامتر سازنده کلاس BufferedWriter از نوع کلاس Writer است.
✔ میدونم الان میخواید بگید که من تا حالا اسم کلاس Writer به گوشم نخورده!! :-)
کلاس Writer یک کلاس از نوع انتزاعی (abstract) هستش که پدر برخی از کلاس هایی است که در زمینه نوشتن داده ها در فایل کاربرد دارند.در تصویر (1) سلسله مراتب کلاس هایی که فرزند کلاس Writer هستند آورده شده است:
✔ تمام اشیایی که از نوع کلاس هایی که فرزند (زیرکلاس) کلاس Writer هستند و در سلسله مراتب تصویر(1) هم نمایش داده شده است، میتوانند جایگزین پارامتر Writer out در سازنده کلاس BufferedWriter شوند.
مثلا:
FileWriter fw = new FileWriter("newFile.txt"); |
✔ همان طور که در مثال بالا مشاهده میکنید یک شی از کلاس FileWriter که طبق سلسله مراتب تصویر(1) از فرزندان کلاس Writer هستش جایگزین پارامتر موجود در سازنده کلاس BufferedWriter شده است.
✔ خب حتما براتون سوال پیش اومده چرا مستقیم از کلاس Writer شی نمیسازیم و درون سازنده کلاس BufferedWriter قرار نمیدهیم؟!!!
از آنجایی که کلاس Writer انتزاعی (abstract) هستش نمیتوان مستقیم از این کلاس شی ایجاد کرد، به همین دلیل از فرزندان کلاس Writer که به تمام ویژگی ها و رفتارهای کلاس Writer دسرسی دارند شی ساخته و درون سازنده کلاس BufferedWriter قرار میدهیم.
به زبان ساده : در کل ما هنگام شی سازی از کلاس BufferedWriter، بعد از کلمه کلیدی new سازنده این کلاس را صدا میزنیم و به جای پارامتر سازنده این کلاس، اشیای یکی از فرزندان کلاس Writer را قرار میدهیم.
✔ نکته: فرزندان کلاس Writer در تصویر(1) گردآوری شده اند.
در دوره پیشرفته برنامه نویسی جاوا به صورت ویدئویی به موضوع فایل ها در جاواپرداخته ایم. |
بررسی متدهای کلاس BufferedReader :
void close() |
✔ بعد از این که فایلمون رو ایجاد کردیم و روش عملیات های مورد نظر رو انجام دادیم و دیگه کاری باهاش نداشتیم با این متد فایلمون رو میبندیم.
void write(String str) |
✔ این متد برای نوشتن و ذخیره کردن داده ها درون فایل استفاده میشود.
مثال:
package www.javapro.ir; import java.io.BufferedWriter; public class TestBufferedWriter { public static void main(String[] args) { } }
|
خروجی: در کنسول خروجی نداریم و خروجی این برنامه بصورت یک فایل با نام و فرمت data.txt است. تصویر(2)
توضیحات:
BufferedWriter bw=new BufferedWriter(new FileWriter("data.txt")); |
✔ در این خط کد، ما برای ایجاد فایل از کلاس BufferedWriter استفاده کرده ایم.
✔ ابتدا از کلاس BufferedWriter شی ایجاد کردیم.درون سازنده کلاس BufferedWriter یک شی از نوع کلاس FileWriter که یکی از فرزندان کلاس Writer هستش شی ساختیم.بعد درون سازنده کلاس FileWriter آدرس مکانی که قراره فایل در آن ایجاد شود قرار دادیم
به طور کلی بصورت زیر عمل کردیم:
1. ایجاد یک شی از نوع کلاس BufferedWriter
2. بعد از کلمه کلیدی new سازنده کلاس BufferedWriter را صدا زده ایم.
3. بعد بجای پارامتر سازنده کلاس BufferedWriter که از نوع کلاس Writer هستش یک شی از کلاس FileWriter که یکی از فرزندان کلاس Writer هستش ایجاد کرده ایم.
4. در پایان بجای پارامتر سازنده کلاس FileWriter، آدرس محلی که فایل قراره در آنجا ایجاد شود قرار میدهیم.
bw.write("www.javapro.ir"); |
✔ در اینجا با استفاده از متد writer متن مورد نظر را درون فایل نوشتیم.
✔ و درپایان هم با متد close این فایل را میبندیم.
void write(char[] array, int start, int len) |
✔ اگر قصد داشتیم بخش های از داده های موجود در یک ارایه که از نوع کاراکتر هستند را در فایل بنویسیم از این متد استفاده میکنیم.
✔ پارامتر start نقطه شروع بازه ای از آرایه است که قراره در فایل ذخیره شود.
✔ پارامتر len تعداد کاراکترهایی است که از نقطه start به بعد قراره در فایل ذخیره شوند.
💡 طبق فرمول زیر محدوده ای از آرایه که قراره در فایل ذخیره شود بصورت زیر است:
[start,start+len-1] |
مثلا اگر یک آرایه از نوع کاراکتر بصورت زیر داشته باشیم:
و بصورت زیر این ارایه را در فایل ذخیره کنیم:
write(ch,2,5); |
بخشی از آرایه ch که در فایل ذخیره میشود بصورت زیر است:
valik |
در اینجا پارامترهای start=2 و len=5 میباشند:
پس بازه ای از آرایه که قراره در فایل ذخیره شود طبق فرمول [start,start+len-1] بصورت زیر است:
[2,6] |
حالا تمام کاراکترهایی که در محدوده خانه 2 تا 6 آرایه قرار میگیرند در فایل ذخیره میشوند.
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
e | k | i | l | a | v | a | j |
✔ رنگ قرمز نقطه آغاز محدوده ما را نشان میدهد.
✔ رنگ سبزه محدوده ای از ارایه که قراره در فایل ذخیره شود را نشان میدهد.
✔ بجای فرمول میتونید len تا از پارامتر start را بشمارید!!! و به سمت راست آرایه حرکت کنید، از این طریق نیز محدوده سبز به دست میآید.فقط توجه داشته باشید این شمردن شامل ابتدای بازه یعنی پارامتر start نیز شود.
شمردن len تا از start به بعد را در زیر مشاهده میکنید:
start=2; len=5; |
..........ادامه این جلسه آموزشی را به صورت پی دی اف و مرتب شده در لینک زیر دانلود کنید:
بستن *نام و نام خانوادگی * پست الکترونیک * متن پیام |
دوره های آموزشی برنامه نویسی
انجام پروژه های برنامه نویسی
تدریس خصوصی برنامه نویسی
بیش از 7 سال از فعالیت جاواپرو میگذرد
جاواپرو دارای مجوز نشر دیجیتال از وزارت فرهنگ و ارشاد اسلامی است
جهت ارتباط مستقیم با جاواپرو در واتساپ و تلگرام :
09301904690