خلاصه مطلب
با کلاس BufferedWriter یکی از کلاس هایی است که ایجاد و نوشتن کار با فایل در زبان برنامه نویسی جاوا را را برای ما ساده کرده است.
فهرست جلسات دوره مقدماتی جاوا
مقدمه اول | جاوا چیست؟
مقدمه دوم | تاریخچه جاوا
مقدمه سوم | ویژگیهای زبان جاوا
جلسه اول | راهنمای دانلود و نصب 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 در جاوا

لیست تمامی دوره های آموزش زبان برنامه نویسی جاوا[کــلیک کنید]
در این آموزش قصد داریم یکی از روش های ساده ایجاد فایل در جاوا و نوشتن داده ها و اطلاعات درون فایل در جاوا را بررسی کنیم.یکی راه های ساده و متداول ایجاد و نوشتن فایل در جاوا استفاده از کلاس 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 هستند آورده شده است:
.png)
✔ تمام اشیایی که از نوع کلاس هایی که فرزند (زیرکلاس) کلاس Writer هستند و در سلسله مراتب تصویر(1) هم نمایش داده شده است ، می توانند جایگزین پارامتر Writer out در سازنده کلاس BufferedWriter شوند.
مثلا:
| FileWriter fw = new FileWriter("newFile.txt"); BufferedWriter bw = new BufferedWriter(fw); |
✔ همان طور که در مثال بالا مشاهده می کنید یک شی از کلاس 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; import java.io.FileWriter; import java.io.IOException;public class TestBufferedWriter { public static void main(String[] args) { try { BufferedWriter bw=new BufferedWriter(new FileWriter("data.txt")); bw.write("www.javapro.ir"); bw.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }} |
خروجی: در کنسول خروجی نداریم و خروجی این برنامه بصورت یک فایل با نام و فرمت data.txt می باشد. تصویر(2)
.png)
توضیحات:
| 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"); bw.close(); |
✔ در اینجا با استفاده از متد writer متن مورد نظر را درون فایل نوشتیم.
✔ و درپایان هم با متد close این فایل را می بندیم.
| void write(char[] array, int start, int len) |
✔ اگر قصد داشتیم بخش های از داده های موجود در یک ارایه که از نوع کاراکتر هستند را در فایل بنویسیم از این متد استفاده می کنیم.
✔ پارامتر start نقطه شروع بازه ای از آرایه است که قراره در فایل ذخیره شود.
✔ پارامتر len تعداد کاراکترهایی است که از نقطه start به بعد قراره در فایل ذخیره شوند.
💡 طبق فرمول زیر محدوده ای از آرایه که قراره در فایل ذخیره شود بصورت زیر است:
| [start,start+len-1] |
مثلا اگر یک آرایه از نوع کاراکتر بصورت زیر داشته باشیم:
.png)
و بصورت زیر این ارایه را در فایل ذخیره کنیم:
| 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; |
..........ادامه این جلسه آموزشی را به صورت پی دی اف و مرتب شده در لینک زیر دانلود کنید:

.png)
.png)
.png)
.png)
.png)
.png)

