Oggi impareremo come scaricare un file da un URL in Java. Possiamo utilizzare il metodo java.net.URL
openStream()
per scaricare il file dall’URL nel programma Java. Possiamo utilizzare i canali Java NIO o Java IO InputStream per leggere i dati dal flusso aperto dell’URL e quindi salvarli su file.
Scarica file da URL in Java
Ecco un semplice esempio di programma Java per scaricare file da un URL. Mostra entrambi i modi per scaricare il file dall’URL in 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: In questo metodo di download file da URL in Java, stiamo utilizzando il metodo URL openStream
per creare lo stream di input. Quindi stiamo utilizzando uno stream di output di file per leggere i dati dallo stream di input e scriverli sul file. downloadUsingNIO: In questo metodo di download file da URL, stiamo creando un canale di byte dai dati dello stream dell’URL. Quindi utilizziamo lo stream di output del file per scriverlo sul file. Puoi utilizzare uno qualsiasi di questi metodi per scaricare il file dall’URL nel programma Java. Se stai cercando prestazioni, allora fai un’analisi utilizzando entrambi i metodi e vedi cosa si adatta alle tue esigenze.
Puoi controllare altri esempi di Java IO dal nostro Repository GitHub.
Source:
https://www.digitalocean.com/community/tutorials/java-download-file-url