java_files1

آموزش جاوا – کار با فایلها

در مجموعه کتابخانه استاندارد جاوا پکیجی تحت عنوان java.io وجود دارد که جهت خواندن و نوشتن در فایل یا هر منبع ورودی و خروجی دیگری مورد استفاده قرار میگیرد.
Stream چیست ؟
به یک گروه منظم و متوالی از داده ها stream گفته میشود. دو نوع stream وجود دارد :
InputStream : جهت خواندن اطلاعات متوالی از یک منبع مورد استفاده قرار میگیرد.
OutputStream : جهت نوشتن اطلاعات متوالی در یه مقصد مورد استفاده قرار میگیرد

 

java_io

 

در پکیج java.io کلاسهای قدرتمند و منعطفی جهت خواندن و نوشتن در فایل و شبکه وجود دارد . در این آموزش کلیات و مقدماتی برخی از آنها بیان میشود.

 

Byte Streams

از Byte Stream جهت خواندن و نوشتن یک بایت ( ۸ بیت ) از اطلاعات استفاده میشود. در پکیج java.io چندین کلاس وجود دارد که از این روش برای خواندن و نوشتن استفاده میکنند. پر کاربردترین آنها FileInputStream و FileOutputStream هستند.

در مثال زیر با استفاده از دو کلاس فوق محتوای یک فایل متنی خوانده شده و در یک فایل متنی دیگر نوشته میشود :

در مثال فوق محتویات فایل input.txt بوسیله FileInputStream به صورت بایت به بایت و با یک حلقه while خوانده میشود و همزمان هر بایت در فایل output.txt نوشته میشود. در پایان برنامه محتوای موجود در فایل ورودی در فایل خروجی درج شده است.

Character Streams

در Character Stream به جای ۸ بیت ۱۶ بیت Unicode به صورت کاراکتر به کاراکتر از منبع خوانده و یا در مقصد نوشته میشود. پرکاربردترین کلاسها برای این نوع خواندن و نوشتن عبارتند از FileReader و FileWriter . در واقع FileReader درون خود از FileInputStream استفاده میکند و FileWriter از FileOuputStream و تنها تفاوت آن در این است که به جای یک بایت دو بایت خوانده و نوشته میشود.

به مثال ریر در این خصوص توجه کنید :

 

در این مثال نیز مانند مثال قبل متحوای فایل اول در فایل دوم کپی میشود (خواندن و نوشتن به صورت ۲ بایتی)

Standard Streams

درهمه زبانهای برنامه نویسی از جمله java ابزارهای استانداردی جهت خواندن از کیبورد و نوشتن بر روی صفحه نمایش وجود دارد.

ورودی استاندارد در جاوا System.in است و خروجی استاندارد System.out . با کمک از آنها میتوان Stream ورودی و خروجی را در برنامه به کاربرد. یکی از کلاسهای پرکاربر آن InputStreamReader است که در مثال زیر استفاده شده :

در این مثال در یک حلقه کاراکتر به کاراکتر از طریق کیبورد از کاربر دریافت میشود. برنامه تا زمان زدن کلید q ادامه پیدا میکند و تنها با ورود این کاراکتر خاتمه می یابد.

کنترل فایل ها

برای آنکه بتوان قبل از خواندن یا نوشتن در یک فایل از موجود بودن آن مطمئن شد و یا عملیاتی مانند تغییر نام و کپی کردن فایلها را انجام داد ، در پکیچ java.io کلاس دیگری به نام File وجود دارد. همینطور کلاسهای FileInputStream و FileOutputStream نیز میتوانند با این کلاس کار کنند. به کد زیر توجه کنید :

در این مثال به جای دادن مسیر فایل به صورت مستقیم به متدسازنده FileInputStream ابتدا یک شیء از کلاس File میسازیم و سپس شیء را به FileInputStream میدهیم. نمونه ای دیگر برای FileOutputSream :

به مثال زیر توجه کنید :

در این مثال برنامه ابتدا چک میکند فایلی به نام myFile.txt در درایو d وجود دارد و در صورت موجود بودن نام فایل به destFile.txt تغییر میدهد. در غیر این صورت پیغام مناسب به کاربر ارائه میدهد.

ساخت فولدر (دایرکتوری)

در مثال زیر نحوه ساخت فولدر را در مسیری خاص مشاهده میکنید:

فهرست فایلها و فولدرها

در مثال زیر لیستی از فایلها و فولدهای یک مسیر خاص به صورت آرایه استخراج شده و میتوان در برنامه از آن استفاده نمود :

 




پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *