Vandaag zullen we leren hoe je een bestand kunt downloaden vanaf een URL in Java. We kunnen de java.net.URL
openStream()
-methode gebruiken om een bestand vanaf een URL te downloaden in een Java-programma. We kunnen Java NIO-kanalen of Java IO InputStream gebruiken om gegevens uit de URL open stream te lezen en deze vervolgens op te slaan in een bestand.
Java Bestand Downloaden vanaf URL
Hier is het eenvoudige Java-programma voor het downloaden van een bestand vanaf een URL. Het toont beide manieren om een bestand vanaf een URL te downloaden 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 deze methode van het downloaden van een bestand in Java vanaf een URL, gebruiken we de openStream
-methode van URL om de invoerstroom te maken. Vervolgens gebruiken we een bestandsuitvoerstroom om gegevens uit de invoerstroom te lezen en naar het bestand te schrijven. downloadUsingNIO: In deze methode voor het downloaden van een bestand vanaf een URL, maken we een bytekanaal van URL-stroomgegevens. Gebruik vervolgens de bestandsuitvoerstroom om het naar het bestand te schrijven. Je kunt een van deze methoden gebruiken om het bestand vanaf een URL te downloaden in een Java-programma. Als je op zoek bent naar prestaties, voer dan wat analyse uit door beide methoden te gebruiken en kijk wat het beste bij je behoeften past.
Je kunt meer Java IO-voorbeelden bekijken op onze GitHub Repository.
Source:
https://www.digitalocean.com/community/tutorials/java-download-file-url