Сегодня мы узнаем, как скачать файл по URL в Java. Мы можем использовать метод openStream()
класса java.net.URL
для загрузки файла по URL в программе на Java. Мы можем использовать каналы Java NIO или поток ввода-вывода Java IO для чтения данных из открытого потока URL, а затем сохранения их в файл.
Загрузка файла из URL в Java
Вот простая программа на Java для загрузки файла по URL. Она показывает оба способа загрузки файла по URL в 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: В этом методе загрузки файла из URL на Java мы используем метод openStream
для создания входного потока. Затем мы используем поток файла для чтения данных из входного потока и записи их в файл. downloadUsingNIO: В этом методе загрузки файла из URL мы создаем байтовый канал из данных потока URL. Затем используем поток файла для записи его в файл. Вы можете использовать любой из этих методов для загрузки файла по URL в программе на Java. Если вам нужна производительность, проведите анализ, используя оба метода, и посмотрите, что подходит для ваших нужд.
Вы можете проверить больше примеров ввода-вывода Java в нашем репозитории на GitHub.
Source:
https://www.digitalocean.com/community/tutorials/java-download-file-url