java, جاوا, حل مسائل با جاوا

دانلود فایل در جاوا (Download File From Internet)

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

در این جلسه، تیم کدگیت را با آموزش دانلود فایل در جاوا همراهی کنید. پیش نیاز این آموزش شامل موارد زیر است:

  1. کتابخانه Apache Common IO
  2. متد در جاوا
  3. شی گرایی در جاوا
  4. مدیریت استثناها
  5. کتابخانه NIO
  6. اضافه کردن کتابخانه در جاوا

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

برای دانلود فایل در جاوا ما دو روش را استفاده می‌کنیم. روش اول استفاده از کتابخانه Apache و روش دوم استفاده از کتابخانه NIO. برای استفاده از کتابخانه Apache مراحل زیر را باید طی کنیم:

  1. دانلود کتابخانه Apache (لینک دانلود)
  2. اضافه کردن کتابخانه به پروژه
  3. Import کردن کتابخانه
  4. استفاده از کتابخانه

کتابخانه NIO در خود java وجود دارد و نیاز به اضافه کردن به پروژه نداریم. فقط باید این کتابخانه را import کرده و از آن استفاده کنیم.

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

حال با داشتن کتابخانه‌ها و پیش نیاز های لازم، به پیاده سازی می‌پردازیم. کد دانلود یک فایل از اینترنت در جاوا به صورت زیر است (کتابخانه Apache):

  public static void useApacheLibrary() {
          String fromFile = "http://d3gnp09177mxuh.cloudfront.net/tech-page-images/java.png";
          String toFile = "pic.jpg";

          try {

              // connectionTimeout, readTimeout = 10 seconds
              FileUtils.copyURLToFile(new URL(fromFile), new File(toFile), 10000,
                        10000);

          } catch (IOException e) {
              e.printStackTrace();
          }
     }

دو رشته داریم که یکی برابر با آدرس عکس  و دیگری برابر با آدرس فایلی که میخواهیم در آن اطلاعات ذخیره شود، است. سپس با کمک FileUtils دانلود را انجام می‌دهیم. لازم است این نکته را هم بگوییم که فایل دانلود شده در فولدر پروژه شما قرار دارد(در کنار فولدر src پروژه).

کد دانلود فایل با کتابخانه NIO به صورت زیر است:

public static void NIOLibrary() {
          String fromFile = "http://d3gnp09177mxuh.cloudfront.net/tech-page-images/java.png";
          String toFile = "pic2.jpg";

          try {

              URL website = new URL(fromFile);
              ReadableByteChannel rbc = Channels.newChannel(website.openStream());
              FileOutputStream fos = new FileOutputStream(toFile);
              fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
              fos.close();
              rbc.close();

          } catch (IOException e) {
              e.printStackTrace();
          }
     }

در کد بالا یک stream را باز کرده و اطلاعات را در فایلی که می‌خواهیم ذخیره می‌کنیم (البته کتابخانه NIO  را در آموزش‌های آینده به طور کامل توضیح خواهیم داد).

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

برای تست کدهای بالا، کد main زیر را بزنید:

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

نوشته های مشابه

دیدگاهتان را بنویسید

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