Comment télécharger un fichier à partir d’une URL en Java ?

Dans ce tutoriel, nous verrons plusieurs méthodes que nous pouvons utiliser pour télécharger un fichier.

Nous allons couvrir des exemples allant de l’utilisation de base de Java IO au package NIO, en passant par certaines bibliothèques communes telles que Apache Commons IO.
 
QCM-Java

Java IO

Le package Java IO est le package de base pour télécharger un fichier à partir d’une URL. Ici, nous allons utiliser BufferedInputStream et les classes d’URL pour ouvrir et lire un fichier d’une adresse donnée à un fichier de notre système local. La raison pour laquelle nous utilisons la classe BufferedInputStream à la place de InputStream est sa capacité de mise en mémoire qui donne à notre code une amélioration de performances.

La classe java.net.URL en Java est une bibliothèque intégrée qui offre plusieurs méthodes pour accéder aux données et les manipuler sur Internet. Dans ce cas, nous utiliserons la fonction openStream() de la classe URL. La signature de la méthode openStream() est la suivante:

public final InputStream openStream() throws IOException

La fonction openStream() fonctionne sur un objet de la classe URL. La classe URL ouvre une connexion à l’URL donnée et la méthode openStream() renvoie un flux d’entrée utilisé pour lire les données de la connexion.

La deuxième classe que nous allons utiliser est BufferedInputStreamReader et FileOutputStream. Ces classes sont utilisées pour lire à partir d’un fichier et y écrire, respectivement.

try (BufferedInputStream bis = new BufferedInputStream(new URL("http://test.com/myfile.txt").openStream());  
  FileOutputStream fos = new FileOutputStream("/Desktop/myfile.txt")) {
    byte data[] = new byte[1024];
    int byteContent;
    while ((byteContent = bis.read(data, 0, 1024)) != -1) {
        fos.write(data, 0, byteContent);
    }
} catch (IOException e) {
   e.printStackTrace(System.out);
}
Différence entre Héritage et Composition

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *