menusearch
javapro.ir
جستجو
۱۳۹۵/۱۱/۹ شنبه
(2)
(0)
♨️ جلسه سی ام - کار با فایل در جاوا(Files and I/O)
♨️ جلسه سی ام - کار با فایل در جاوا(Files and I/O)

🔮این آموزش جهت آشنایی با مبحث کار فایل هستش


🔮کار با فایل در جاوا گسترده است


🔮برای این که آموزش طولانی و خسته کننده نشه


🔮این مبحث رو تکه تکه کرده ایم که یادگیری آسان تر شود


🔮مفاهیمی که در این آموزش بررسی کردیم به شرح زیر است:
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[]) {
        FileInputStream in = null;
        FileOutputStream out = null;

        try {
            in = new FileInputStream("input.txt");
            out = new FileOutputStream("output.txt");

            int c;
            while ((c = in.read()) != -1) {
                out.write(c);
            }

            in.close();
            out.close();
        } catch (IOException e) {
            System.out.println(e.getMessage());
        }
    }

{


خروجی:

 

input.txt (The system cannot find the file specified)


✔ دلیل رخ دادن استثنا در این مثال این هست که هنگام خواندن فایل input.txt ،این فایل در کامپوتر پیدا نشده است!!


✔ همان طور که ابتدای مثال گفتیم ،در این مثال فرض شده که از قبل فایلی با این نام در کامپیوتر ما موجود می باشد.


✔ پس ما یک فایل در مکانی از کامپیوتر خود با نام input و فرمت txt ایجاد کرده و داخلش یک متن می نویسیم!

 

input.txt


•    بخش مشکی نام فایل و بخش قرمز فرمت فایل می باشد.


ما برای ایجاد یک فایل در کامپیوتر بصورت دستی و بدون برنامه نویسی بصورت زیر عمل می کنیم:


1.    ابتدا مکانی از کامپیوتر را برای ایجاد فایل انتخاب می کنیم، بهتر است این مکان داخل فولدر پروژه ما در کنار فلودر سورس کدهایمان ( فولدر src) باشد.

 

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

 

در تصویر(1) مکان فولدر پروژه Hello Iran را مشاهده می کنید:

 

خواندن فایل در جاوا

 

در تصویر 2 و 3 روش ایجاد یک فایل با فرمت txt و با نام input را در فولدر پروژه مون در کامپیوتر را مشاهده می کنید:

 

نوشتن فایل در جاوا

 

کار با File در جاوا

 

در تصویر 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[]) {
        FileInputStream in = null;
        FileOutputStream out = null;

        try {
            in = new FileInputStream("input.txt");
            out = new FileOutputStream("output.txt");

            int c;
            while ((c = in.read()) != -1) {
                out.write(c);
            }

            in.close();
            out.close();
        } catch (IOException e) {
            System.out.println(e.getMessage());
        }
    }
}


خروجی:

 

 

 

✔ در محیط کنسول چیزی نمایش داده نمی شود! اما این کد برنامه هدفش این بود که اطلاعات فایل input.txt رو بخواند و درون یک فایل جدید با نام output.txt بریزد.( کپی کردن فایل input.txt درون فایل output.txt )


✔ پس یک فایل جدید با نام output.txt که حاوی اطلاعات کپی شده از فایل input.txt است ایجاد می شود.


✔ برای این که ببینیم واقعا فایل input.txt کپی شده و فایل output.txt ایجاد شده یا خیر به سراغ پوشه پروژه مون می رویم:تصویر(7)

 

آموزش کار با فایل در java

همان طور که در تصویر 7 می بینید فایل output.txt ایجاد شده است.حالا در تصویر(8) این فایل را باز می کنیم:

 

ایجاد فایل در زبان برنامه نویسی جاوا

 

همان طور که در تصویر 8 مشاهده می کنید اطلاعات فایل input.txt درون فایل output.txt کپی شده است.


عملکرد این برنامه:
این برنامه یک فایل با نام input.txt را از کامپیوتر پوشه پروژمون خواند و یک فایل جدید با نام output.txt ایجاد کرد و اطلاعات فایل input.txt را درون فایل output.txt ریخت.

 

...ادامه این جلسه آموزشی را می توانید بصورت کتاب الکترونیکی (PDF شده) در لینک زیر دریافت کنید.

 


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

آموزش آسان و ساده زبان برنامه نویسی جاوا

لینک دانلود

 

 


نشر این مطلب با ذکر منبع (لینک سایت) بلامانع است.
برای با خبر شدن از جدیدترین مطالب آموزشی جاوا
عضو کانال تلگرام ما شوید.

 

نظرات کاربران
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

بستن
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

1 نظر
Reza Aahangar
شنبه هفتم مهر ۹۷
پاسخ
()
()
Reza Aahangar
manoon babtee zahamatitan.
شرکت سازنده