הורדת קובץ Java מכתובת ה-URL

היום נלמד איך להוריד קובץ מכתובת URL ב-Java. נוכל להשתמש בשיטה openStream() ב-java.net.URL כדי להוריד קובץ מכתובת URL בתוכנית Java. נוכל להשתמש בערוצי Java NIO או ב- Java IO InputStream כדי לקרוא נתונים מהזרם הפתוח של ה-URL ולשמור אותו בקובץ.

הורדת קובץ Java מכתובת URL

הנה דוגמה פשוטה לתוכנית להורדת קובץ Java מכתובת URL. היא מציגה שני דרכים להורדת קובץ מכתובת URL ב-Java. JavaDownloadFileFromURL.java

package com.journaldev.files;

import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;

public class JavaDownloadFileFromURL {

    public static void main(String[] args) {
        String url = "https://www.journaldev.com/sitemap.xml";
        
        try {
            downloadUsingNIO(url, "/Users/pankaj/sitemap.xml");
            
            downloadUsingStream(url, "/Users/pankaj/sitemap_stream.xml");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private static void downloadUsingStream(String urlStr, String file) throws IOException{
        URL url = new URL(urlStr);
        BufferedInputStream bis = new BufferedInputStream(url.openStream());
        FileOutputStream fis = new FileOutputStream(file);
        byte[] buffer = new byte[1024];
        int count=0;
        while((count = bis.read(buffer,0,1024)) != -1)
        {
            fis.write(buffer, 0, count);
        }
        fis.close();
        bis.close();
    }

    private static void downloadUsingNIO(String urlStr, String file) throws IOException {
        URL url = new URL(urlStr);
        ReadableByteChannel rbc = Channels.newChannel(url.openStream());
        FileOutputStream fos = new FileOutputStream(file);
        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
        fos.close();
        rbc.close();
    }

}

downloadUsingStream: בשיטה זו של הורדת קובץ מכתובת URL ב-Java, אנו משתמשים בשיטת URL openStream כדי ליצור את הזרם הכניסה. לאחר מכן אנו משתמשים בזרם הפלט של קובץ כדי לקרוא נתונים מזרם הכניסה ולכתוב אותם לקובץ. downloadUsingNIO: בשיטת הורדת קובץ מכתובת URL זו, אנו יוצרים ערוץ בתים מנתוני הזרם של ה-URL. לאחר מכן משתמשים בזרם הפלט של קובץ כדי לכתוב אותו לקובץ. ניתן להשתמש באחת מהשיטות הללו כדי להוריד את הקובץ מכתובת URL בתוכנית Java. אם אתה מחפש ביצועים, אז עשה ניתוח על ידי שימוש בשתי השיטות וראה מה מתאים לך.

ניתן לבדוק דוגמאות נוספות של Java IO מתוך מאגר המידע שלנו ב-GitHub.

Source:
https://www.digitalocean.com/community/tutorials/java-download-file-url