Télécharger un fichier Java depuis une URL

Aujourd’hui, nous allons apprendre comment télécharger un fichier depuis une URL en Java. Nous pouvons utiliser la méthode openStream() de java.net.URL pour télécharger un fichier depuis une URL dans un programme Java. Nous pouvons utiliser les canaux Java NIO ou Java IO InputStream pour lire les données depuis le flux ouvert par l’URL, puis les enregistrer dans un fichier.

Télécharger un fichier depuis une URL en Java

Voici un exemple simple de programme Java pour télécharger un fichier depuis une URL. Il montre les deux façons de télécharger un fichier depuis une URL en 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();
    }

}

téléchargementAvecStream: Dans cette méthode de téléchargement de fichier depuis une URL en Java, nous utilisons la méthode openStream de l’URL pour créer le flux d’entrée. Ensuite, nous utilisons un flux de sortie de fichier pour lire les données depuis le flux d’entrée et les écrire dans le fichier. téléchargementAvecNIO: Dans cette méthode de téléchargement de fichier depuis une URL, nous créons un canal de bytes à partir des données de flux de l’URL. Ensuite, nous utilisons le flux de sortie de fichier pour l’écrire dans le fichier. Vous pouvez utiliser l’une de ces méthodes pour télécharger le fichier depuis une URL dans un programme Java. Si vous recherchez les performances, effectuez une analyse en utilisant les deux méthodes et voyez celle qui convient le mieux à vos besoins.

Vous pouvez consulter plus d’exemples d’entrées/sorties Java depuis notre Dépôt GitHub.

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