Comment télécharger un PDF à partir d'une URL donnée en Java?


Je veux créer une application Java qui, lorsqu'elle est exécutée, télécharge un fichier à partir d'une URL. Est-il une fonction que je peut utiliser pour ce faire?

Ce morceau de code ne fonctionnait que pour un .txt fichier:

URL url= new URL("http://cgi.di.uoa.gr/~std10108/a.txt");
BufferedReader in = new BufferedReader(
new InputStreamReader(url.openStream()));
PrintWriter writer = new PrintWriter("file.txt", "UTF-8");

String inputLine;
while ((inputLine = in.readLine()) != null){
   writer.write(inputLine+ System.getProperty( "line.separator" ));               
   System.out.println(inputLine);
}
writer.close();
in.close();
Author: ArtB, 2013-11-28

1 answers

Vous pouvez ouvrir la connexion en utilisant la classe URL. Ensuite, il suffit de lire à partir de son InputStream et d'écrire les données que vous lisez dans votre fichier.

(ceci est un exemple simplifié, vous devez toujours gérer les exceptions et assurer la fermeture des flux aux bons endroits)

System.out.println("opening connection");
URL url = new URL("https://upload.wikimedia.org/wikipedia/en/8/87/Example.JPG");
InputStream in = url.openStream();
FileOutputStream fos = new FileOutputStream(new File("yourFile.jpg"));

System.out.println("reading from resource and writing to file...");
int length = -1;
byte[] buffer = new byte[1024];// buffer for portion of data from connection
while ((length = in.read(buffer)) > -1) {
    fos.write(buffer, 0, length);
}
fos.close();
in.close();
System.out.println("File downloaded");

Depuis Java 7, nous pouvons également utiliser

URL url = new URL("https://upload.wikimedia.org/wikipedia/en/8/87/Example.JPG");
InputStream in = url.openStream();
Files.copy(in, Paths.get("someFile.jpg"), StandardCopyOption.REPLACE_EXISTING);
in.close();
 25
Author: Pshemo, 2018-05-09 16:37:31