menusearch
javapro.ir

نمونه مثال کار با فایل در جاوا سری ششم

جستجو
پنج شنبه ۱ آذر ۱۴۰۳ | ۱۳:۴۱:۳۱
۱۳۹۵/۱۲/۴ چهارشنبه
(2)
(0)
نمونه مثال کار با فایل در جاوا سری ششم
نمونه مثال کار با فایل در جاوا سری ششم
مثال: برنامه ای به زبان جاوا بنویسید که آدرس یک فایل در کامپیوتر را بگیرد، و به آدرسی که بهش می‌دهیم فایل را در آن محل ایجاد کند. ( چیزی شبیه کپی پیست در کامپیوتر که در این برنامه به صورت دستی آدرس مبدا فایل و مقصد فایل به برنامه داده میشه )
پیش نیاز: مباحث کار با فایل در جاوا + مباحث پایه و شی گرایی جاوا
پاسخ:

package www.javapro.ir;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Scanner;
public class CopyFiles {
    staticvoid copyFileUsingStream(File source, File dest) {

          try {
              InputStream is = new FileInputStream(source);
              OutputStream os = new FileOutputStream(dest);
              byte[] buffer = newbyte[1024];
              int length;
              while ((length = is.read(buffer)) > 0) {
                    os.write(buffer, 0, length);
              }
              is.close();
              os.close();
          } catch (IOException e) {
          }

    }
    public static void main(String[] args) {

          String addressSource = "E:\\picture\\gisekan.jpg";

          String addressDestination = "F:\\image\\";
 
          File fileSource = new File(addressSource);

          File fileDestination = new File(addressDestination
                    + fileSource.getName());
          copyFileUsingStream(fileSource, fileDestination);
          System.out. print ln("Succes :-)");
    }

}

اصلا نگران نباشید!!! برنامه کپی و پیست کردن یک فایل به سادگی خواندن و نوشتن در فایل هستش که در جلسات آموزشی به آن پرداخته ایم. برای کپی کردن یک فایل ابتدا نیاز است که فایل مبدا را باز کرده و بخوانیم و تمام اطلاعات درون فایل را در یک فایل جدید و خامی که ایجاد کرده ایم. ذخیره سکنیم.
همان طور که جلسات آموزشی مبحث فایل گفتیم، فایل ها از جریانی از بایت ها تشکیل شده اند، حالا برای کپی کردن یک فایل کافیست این جریان بایت ها را در فایل بخوانیم و یک نسخه از انها رو کپی کنیم و بریزیم داخل یک فایل جدید و خام.
بصورت عملی در زیر کپی و پیست کردن یک فایل را یاد خواهیم گرفت.
توضیحات برنامه:
این برنامه یک متد با نام copyFileUsingStream دارد که از طریق ان می‌توان کپی از هر نوع فایل را در مکان مورد نظر ایجاد کرد.
متد  copyFileUsingStream را بررسی می‌کنیم:

staticvoid copyFileUsingStream(File source, File dest)

•    در این خط کد متد copyFileUsingStream دو پارامتر به عنوان ورودی میگیرد که هر دو از نوع کلاس File است.
•    پارامتر source آدرس محل فایلی است که قراره آن را کپی کنیم.
•    پارامتر dest آدرس محلی است که قراره فایل کپی شده ما در آن پیست شود.

InputStream is = new FileInputStream(source);

•    ایجاد یک شی از نوع کلاس InputStream برای خواندن فایل مبدا ( فایلی که قرار از روی آن کپی برداریم)
•    سازنده ای که بعد از کلمه کلیدی new صدا زده شده است، سازنده کلاس FileInputStream هستش که فرزند کلاس InputStream است.در اینجا از چندریختی استفاده کرده ایم چرا؟ زیرا دوست داریم به ویژگی ها و رفتار های کلاس InputStream دسرسی پیدا کنیم اما چون کلاس InputStream یک کلاس abstract و انتزاعی هستش نمی‌توان از ان شی ایجاد کرد به همین خاطر به شیوه چندریختی کاری کردیم که بتوانیم از طریق سازنده فرزندش به ویژگی های و رفتارهای آن دسرسی پیدا کنیم.
•    سازنده این کلاس به عنوان پارامتر یک یک شی از نوع کلاس File می‌گیرد.

OutputStream os = new FileOutputStream(dest);
  • در این خط کد یک فایل خام در آدرس مقصدی که فایل قراره پیست شود ایجاد کرده ایم.اطلاعات فایل مبدا را قراره در این فایل کپی و ذخیره کنیم.
byte[] buffer = newbyte[1024];

•    ما قصد داریم بایت به بایت فایل مبدا را بخوانیم، در اینجا آرایه ای از نوع byte تعریف کرده ایم که بایت های خوانده شده از فایل را درون آن بریزیم.
•    در مورد سایز آرایه هم از آنجایی که اندازه بایت های موجود در فایل مبدا ای که قصد داریم بخوانیم را نمی‌دانیم ،اندازه این ارایه را 1024 انتخاب کردیم، معمولا اندازه این آرایه را 1024 انتخاب می‌کنند وگرنه اندازه 500 هم میشه داد اما دیگه اندازه متداولی که براش قرار می‌دهند یعنی 1024 را انتخاب کرده ایم.

int length;
              while ((length = is.read(buffer)) > 0) {
                    os.write(buffer, 0, length);
              }

•    length تعداد بایت هایی که در فایل نوشته می‌شوند.
•    read بایت های فایل مبدا را میخواند.
•    متد write آرایه buffer که حاوی بایت های خوانده از شده از فایل مبدا است را در فایل مقصد میریزد.
•    کاربرد مقدار عدد صفر در متد write(buffer, 0, length) چیست؟ عدد صفر یعنی از اندیس و خانه صفرم (اول) آرایه شروع کن. buffer[0].

is.close();
os.close();

•    در پایان فایل های خود را با متد close می‌بندیم.
حال برای تست این برنامه در متد main کلاس بصورت زیر عمل کرده ایم:

publicstaticvoid main(String[] args) {

•    متد main کلاس که برای تست و اجرای برنامه ازش استفاده می‌کنیم.
String addressSource = "E:\\picture\\gisekan.jpg";
  • در این برنامه ما قصد داریم یک فایل تصویری با نام و فرمت gisekan.jpg را در درایو E و پوشه picture را کپی کنیم.
  • پس فایلی که در این آدرس قرار دارد فایل مبدا ما را تشکیل می‌دهد: تصویر(1)


کپی کردن فایل در جاوا

•    ما قصد داریم یک کپی از فایل gisekan.jpg را در مکان دیگر از کامپیوتر ایجاد کنیم.
•    دقت کنید هنگام آدرس دهی به جای یک علامت “\” از دو علامت “\\” استفاده کنیم.
•    نام و فرمت فایلی که قصد داریم از روی ان یک کپی برداریم نیز در آخر آدرس قید کنیم.

String addressDestination = "F:\\image\\";

•    آدرس مکانی که فایل ما قراره در آنجا کپی و پیست شود را درون یک متغیر از نوع رشته می‌ریزیم.
•    این مکان در درایو F و پوشه image است.

File fileSource = new File(addressSource);

•    یک شی از نوع کلاس File ایجاد کرده و درون ان متغیر addressSource که حاوی آدرس فایل مبدا است را قرار داده ایم.
File fileDestination = new File(addressDestination
                    + fileSource.getName());

•    یک شی از نوع کلاس File ایجاد کرده و درون آن متغیر addressDestination که حاوی آدرس مکانی است که فایل ما قراره
در آنجا پیست شود ( ایجاد شود) قرار گرفته است.
•    درون سازنده کلاس File بعد از پارامتر addressDestination یک علامت "+" آورده شده و بعد از علامت جمع دستور زیر آمده است:

fileSource.getName();

•    این دستور نام و فرمت فایل ما را برمی گرداند ( به ما می‌دهد) در این مثال نام و فرمت فایل ما که تصویری است برمی گرداند.
در اینجا مقدار " gisekan.jpg" که نام و فرمت فایل تصویرمون هست به ما داده می‌شود.
•    اگر توجه کرده باشید ما در متغیر addressDestination تنها آدرس مکانی که فایل قراره در آن کپی شود را ریخته ایم و خبری از نام و فرمت فایل نیست!!! :

"F:\\image\\";

• خب برای این که نام و فرمت فایل هم به این آدرس اضاف کنیم با کمک علامت + و دستور fileSource.getName() نام و فرمت فایل
را نیز به آدرس اضاف می‌کنیم. و نتیجه بصورت زیر خواهد بود:

F:\image\gisekan.jpg

•    توجه داشته باشیم ما در کدنویسی بین درایو و پوشه و فایل از دو علامت “\\” استفاده می‌کنیم و سیستم هنگام خواندن بصورت “\” تشخیص می‌دهد
copyFileUsingStream(fileSource, fileDestination);
          System.out. print ln("Succes :-)");

•    خب متد copyFileUsingStream را برای کپی کردن فایل مبدا درون فایل مقصد را صدا می‌زنیم.
•    متد copyFileUsingStream یک متد static هستش به همین خاطر برای صدا زدن آن در متد main نیاز به شی سازی از کلاس نداریم.
•    نتیجه عملیات این است که فایل gisekan.jpg که در آن زیر قرار دارد را:

"E:\\picture\\gisekan.jpg";
به مکان زیر انتقال می‌دهد: تصویر(2)
F:\image\gisekan.jpg

نمونه مثال کار با فایل در جاوا
در پایان هم پیام “success :-) ” در کنسول مبنی بر موفق بودن عملیات چاپ می‌شود.

نکته: ما هر فایل با هر نوع فرمتی را می‌توانیم از طریق این برنامه در مکان مورد نظر خود در کامپیوتر کپی کنیم.

نظرتون در مورد این نوع سبک آموزش را برای ما ارسال کنید، قطعا نظرات شما در بهبود آموزش های جاوا تاثیر گذار است.

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

این مثال را بصورت مرتب شده در قالب فایل پی دی اف در لینک زیر دانلود کنید:

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

لینک دانلود
پیروز و موفق باشید
برای اطلاع از آموزش ها و مثال های جدید عضو کانال تلگرامما شوید
نظرات کاربران
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

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

1 نظر
سعيد غلامى
پنج شنبه هفتم دی ۹۶
پاسخ
(1)
()
سعيد غلامى
واقعا عاليه.ممنون.
هدر سایت
بلک فرایدی آکادمی جاواپرو،50% تخفیف روی تمامی دوره های جاوا تا 10 آذر 1403
مشاهده سرفصل ها و ثبت نام در دوره Spring Boot جاواپرو  [کلیک کنید]
آموزش پروژه محور اسپرینگ بوت(Spring Boot)-سیستم دانشگاه
ثبت نام در دوره آموزش Spring security
دوره معماری میکروسرویس ها (Microservices) با استفاده از Spring Boot و Spring Cloud
دوره پرتاب | آموزش پیش نیازهای برنامه نویسی
دوره آموزش مبانی زبان برنامه نویسی جاوا
دوره آموزش مفاهیم پیشرفته زبان برنامه نویسی جاوا
مقدمه ای از زبان برنامه نویسی جاوا(java)
آموزش زبان برنامه نویسی جاوا
آموزش گرافیک در زبان برنامه نویسی جاوا
آموزش مدیریت چیدمان گرافیکی در زبان جاوا
آموزش ساخت بازی دوبعدی در زبان جاوا
Collection ها در زبان برنامه نویسی جاوا
آموزش پروژه محور ساخت برنامه مدیریت بانک با JavaFX
نمونه پروژه های رایگان زبان جاوا
آموزش دیتابیس در زبان برنامه نویسی جاوا
نمونه مثال پایه ای زبان برنامه نویسی جاوا
نمونه مثال String در زبان برنامه نویسی جاوا
آموزش جامع برنامه نویسی JavaFX
آموزش ساخت برنامه آزمون تستی در JavaFX
آموزش برنامه نویسی سوکت در جاوا
آموزش ساخت برنامه دفترچه تلفن با JavaFX
آموزش ساخت ربات ساده تلگرام با زبان جاوا
آموزش ساخت برنامه ماشین حساب با JavaFX
آموزش ساخت برنامه ساده مدیریت ایمیل ها با JavaFX
دوره آموزش Spring Boot
سفارش انجام پروژه زبان برنامه نویسی جاوا(JAVA)
سفارش انجام پروژه برنامه نویسی متلب(MATLAB) با قیمت منصفانه و تحویل به موقع
سفارش انجام پروژه زبان برنامه نویسی سی شارپ (#C)
سفارش انجام پروژه زبان برنامه نویسی سی(C)
سفارش انجام پروژه زبان برنامه نویسی پایتون(Python)
سفارش انجام پروژه زبان برنامه نویسی PHP (پی اچ پی)
سفارش انجام پروژه زبان برنامه نویسی اسمبلی(Assembly)
سفارش انجام پروژه زبان برنامه نویسی جاوا اسکریپت (Javascript)
سفارش انجام پروژه هوش مصنوعی
سفارش انجام پروژه طراحی الگوریتم
سفارش انجام پروژه ساختمان داده ها
سفارش انجام پروژه مهندسی نرم افزار
سفارش انجام پروژه شبکه های کامپیوتری
سفارش انجام پروژه پایگاه داده: دیتابیس (database)
 سفارش انجام پروژه سیستم عامل
سفارش انجام پروژه پاورپوینت(PowerPoint)
سفارش انجام پروژه اکسل (Excel)
سفارش انجام تحقیق و تهیه مقاله
سوالات متداول برنامه نویسی
جدیدترین مطالب
گفتگو را شروع کنید
مشاوره ،تدریس خصوصی و سفارش انجام انواع پروژه های برنامه نویسی