Heute werden wir lernen, wie man eine Datei von einer URL in Java herunterlädt. Wir können die java.net.URL
openStream()
-Methode verwenden, um eine Datei von einer URL in einem Java-Programm herunterzuladen. Wir können Java NIO Channels oder Java IO InputStream verwenden, um Daten aus dem geöffneten Stream der URL zu lesen und sie dann in eine Datei zu speichern.
Java-Datei von URL herunterladen
Hier ist das einfache Java-Beispielprogramm zum Herunterladen einer Datei von einer URL. Es zeigt beide Möglichkeiten, eine Datei von einer URL in Java herunterzuladen.
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 dieser Methode zum Herunterladen einer Datei von einer URL in Java verwenden wir die openStream
-Methode der URL, um den Eingabestream zu erstellen. Anschließend verwenden wir einen Dateiausgabestrom, um Daten aus dem Eingabestream zu lesen und in die Datei zu schreiben. downloadUsingNIO: In dieser Methode zum Herunterladen einer Datei von einer URL verwenden wir einen Byte-Channel, um Daten aus dem URL-Stream zu erhalten. Anschließend verwenden wir den Dateiausgabestrom, um sie in die Datei zu schreiben. Sie können eine dieser Methoden verwenden, um die Datei von der URL in Ihrem Java-Programm herunterzuladen. Wenn Sie nach Leistung suchen, führen Sie eine Analyse durch und sehen Sie, welche Methode Ihren Anforderungen entspricht.
Weitere Beispiele für Java-IO finden Sie in unserem GitHub-Repository.
Source:
https://www.digitalocean.com/community/tutorials/java-download-file-url