🔮این آموزش جهت آشنایی با مبحث کار فایل هستش
🔮کار با فایل در جاوا گسترده است
🔮برای این که آموزش طولانی و خسته کننده نشه
🔮این مبحث رو تکه تکه کرده ایم که یادگیری آسان تر شود
🔮مفاهیمی که در این آموزش بررسی کردیم به شرح زیر است:
Stream
InPutStream
OutPutStream
Byte Streams
FileInputStream
FileOutputStream
Character Streams
FileReader
FileWriter
Reading and Writing Files
InputStream
public void close() throws IOException{}
public int read( )throws IOException{}
public int available() throws IOException{}
OutputStream
public void close() throws IOException{}
public void write(int w)throws IOException{}
public void write(byte[] w)
این آموزش فارسی و تمامی این مباحث مطابق استاندارد های آموزش یادگیری جاوا است و با رعایت اصل پیشنیازی است.
در این جلسه آموزشی قصد داریم کار با فایل در جاوا را بررسی کنیم.
ما گاهی نیاز داریم داده ها و اطلاعات برنامه خود را در محلی از هارد کامپیوتر ذخیره کنیم یا این اطلاعات را از هارد کامپیوتر خوانده و دریافت کنیم.
در کل کار با فایل یعنی این که داده های برنامه را در یک فایل در محلی از کامپیوتر ذخیره کنیم و یا این که داده ها را از فایلی درون کامپیوتر بخوانیم.
خب ما در این آموزش میخوایم چکار کنیم؟!
پاسخ: ما در این اموزش قصد داریم روش ایجاد فایل، ذخیره اطلاعات درون فایل و روش خواندن اطلاعات از فایل را بررسی کنیم.
خب بریم سراغ اصل مطلب!!!
ما برای کار با فایل نیاز به استفاده و import کردن پکیج java.io ابتدای سورس کد برنامه خود داریم.
import java.io.*; |
تقریبا هر کلاسی در جاوا که نیاز به ورودی و خروجی داشته باشد گذرش به استفاده از پکیج java.io خواهد خورد.
Stream
به دنباله ای از داده ها در جاوا یک Stream میگوییم.
حالا این داده ها میتوانند از نوع داده های اولیه ( متغیرهای اولیه)، اشیا ،کاراکترها و غیره باشند.
ما در جاوا دو نوع Stream داریم:
1. InPutStream : برای خواندن داده ها از فایل درون کامپیوتر استفاده میشود.
2. OutPutStream : برای نوشتن و ذخیره داده ها در فایل استفاده میشود.
Byte Streams
byte streams برای انجام ورودی و خروجی های داده های (بایت های) 8 بیتی استفاده میشود. ( خیلی این تعریفا رو جدی نگیرید! فقط میخوام که اینارو گفته باشم!!! اصل مطلب رفتن سراغ مثال عملی هست که جلوتر کار میکنیم پس اصلا نگران نباشید 😊 )
اگرچه کلاس های زیادی در زمینه byte streams داریم اما تقریبا بیشتر از FileInputStream و FileOutputStream استفاده میشود.
در زیر مثالی از روش خواندن و نوشتن فایل با استفاده از FileInputStream و FileOutputStream است:
مثال:در مثال زیر قصد داریم یک فایل با فرمت txt از درون کامپیوتر با نام input.txt بخوانیم و اطلاعات درون فایل input.txt را خوانده و در فایل جدید با نام output.txt بریزیم. چیزی شبیه کپی کردن هست یعنی فایل input.txt بخوانیم و هرچی داخلش هست رو بریزیم تو فایل جدیدی با نام output.txt.
• در این مثال فرض بر آن است که از قبل فایل input.txt درون کامپیوتر ما موجود است.
package fileIO; import java.io.*; public class CopyFile { public static void main(String args[]) { try { int c; in.close(); { |
خروجی:
input.txt (The system cannot find the file specified) |
✔ دلیل رخ دادن استثنا در این مثال این هست که هنگام خواندن فایل input.txt ،این فایل در کامپوتر پیدا نشده است!!
✔ همان طور که ابتدای مثال گفتیم ،در این مثال فرض شده که از قبل فایلی با این نام در کامپیوتر ما موجود است.
✔ پس ما یک فایل در مکانی از کامپیوتر خود با نام input و فرمت txt ایجاد کرده و داخلش یک متن مینویسیم!
input.txt |
• بخش مشکی نام فایل و بخش قرمز فرمت فایل است.
ما برای ایجاد یک فایل در کامپیوتر بصورت دستی و بدون برنامه نویسی بصورت زیر عمل میکنیم:
1. ابتدا مکانی از کامپیوتر را برای ایجاد فایل انتخاب میکنیم، بهتر است این مکان داخل فولدر پروژه ما در کنار فلودر سورس کدهایمان ( فولدر src) باشد.
در تصویر(1) مکان فولدر پروژه Hello Iran را مشاهده میکنید:
در تصویر 2 و 3 روش ایجاد یک فایل با فرمت txt و با نام input را در فولدر پروژه مون در کامپیوتر را مشاهده میکنید:
در تصویر 4 نام فایل New Text Document.txt را به نام input.txt تغییر داده ایم:
در تصویر 5 و6 فایل input.txt باز کرده و متن “salam javalike” را در داخلش مینویسیم و ذخیره(save) میکنیم.
خب فرآیند ایجاد فایل و ریختن داده ( در این جا داده ما یک متن بود) بصورت دستی در کامپیوتر تمام شد.
خلاصه کل فرآیند ایجاد فایل در کامپیوتر:
• ایجاد فایل در کامپیوتر به سادگی باز کردن برنامه Notepad در کامپیوتر و نوشتن اطلاعات مورد نظر و ذخیره ان با فرمت txt است، به همین سادگی!!!
• به دلیل این که میخواهیم فایلمون همراه با سورس کدهامون باشه بهتره که فایل مورد نظر در پوشه پروژه هامون در کنار پوشه src قرار گیرد.
• همان طور که میدونید هر فایل که در محیطی از کامپیوتر قرار میگیرد یک آدرس دارد:
مثلا آدرس برنامه آنتی ویروس ند32 در کامپیوتر من بصورت زیر است:
C:\Program Files\ESET\ESET Smart security |
جالب اینه که برای آدرس فایل های ما در پوشه پروژه مون کافی که تنها نام فایل همراه با فرمت آن را استفاده کنیم:
“فرمت.نام فایل” |
مثلا فایل input.txt آدرسش در پوشه پروژه ما بصورت زیر است:
"input.txt" |
اگه این فایل در درایو D و در پوشه ای با نام files باشد آدرس آن بصورت زیر است:
"D:\\files\\input.txt" |
✔ در جاوا برای آدرس دهی به جای علامت "\" از علامت "\\" استفاده میکنیم یعنی بجای یک بک اسلش از دو بک اسلش استفاده میکنیم.
حالا دیگه خودتون قضاوت کنید کدوم آدرس بهتر است؟!! تازه اگه سورس کد خودتون رو به دوستتون بدید که در کامپیوتر خودش برنامه رو اجرا کنه و دوستتون درایو D نداشت چی؟!! برنامه با خطا روبرو میشه! پس بهتره که فایل های خودمون در پوشه پروژه مورد نظرمون که سورس کد ما درونش قرار داده ،بگذاریم.
خب بریم سراغ کد مثال بالا:
حالا ما تا اینجا فایل input.txt رو در پوشه پروژه مون ایجاد کردن و داخلش متن "salam javalike" نوشتیم.
بار دیگه مثال بالا رو تست میکنیم:
قبل از تست کردن برنامه پوشه پروژه مون رو در تصویر (5) مشاهده میکنید.
حالا برنامه رو اجرا میکنیم:
package fileIO; import java.io.*; public class CopyFile { public static void main(String args[]) { try { int c; in.close(); |
خروجی:
✔ در محیط کنسول چیزی نمایش داده نمیشود! اما این کد برنامه هدفش این بود که اطلاعات فایل input.txt رو بخواند و درون یک فایل جدید با نام output.txt بریزد.( کپی کردن فایل input.txt درون فایل output.txt )
✔ پس یک فایل جدید با نام output.txt که حاوی اطلاعات کپی شده از فایل input.txt است ایجاد میشود.
✔ برای این که ببینیم واقعا فایل input.txt کپی شده و فایل output.txt ایجاد شده یا خیر به سراغ پوشه پروژه مون میرویم:تصویر(7)
همان طور که در تصویر 7 میبینید فایل output.txt ایجاد شده است.حالا در تصویر(8) این فایل را باز میکنیم:
همان طور که در تصویر 8 مشاهده میکنید اطلاعات فایل input.txt درون فایل output.txt کپی شده است.
عملکرد این برنامه:
این برنامه یک فایل با نام input.txt را از کامپیوتر پوشه پروژمون خواند و یک فایل جدید با نام output.txt ایجاد کرد و اطلاعات فایل input.txt را درون فایل output.txt ریخت.
در دوره پیشرفته برنامه نویسی جاوا به صورت ویدئویی به موضوع فایل ها در جاواپرداخته ایم. |
این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)
لینک دانلود
بستن *نام و نام خانوادگی * پست الکترونیک * متن پیام |
دوره های آموزشی برنامه نویسی
انجام پروژه های برنامه نویسی
تدریس خصوصی برنامه نویسی
بیش از 7 سال از فعالیت جاواپرو میگذرد
جاواپرو دارای مجوز نشر دیجیتال از وزارت فرهنگ و ارشاد اسلامی است
جهت ارتباط مستقیم با جاواپرو در واتساپ و تلگرام :
09301904690