Java 从 URL 下载文件

今天我们将学习如何在 java 中从 URL 下载文件. 我们可以使用 java.net.URL openStream() 方法从 java 程序中的 URL 下载文件. 我们可以使用 Java NIO Channels 或 Java IO InputStream 来读取从 URL 开放流的数据,然后将其保存到文件中。

Java 從 URL 下載檔案

java download file from url, java code to download file from URL example Here is the simple java download file from URL example program. It shows both ways to download file from URL in java. JavaDownloadFileFromURL.java

 1package com.journaldev.files;
 2
 3import java.io.BufferedInputStream;
 4import java.io.FileOutputStream;
 5import java.io.IOException;
 6import java.net.URL;
 7import java.nio.channels.Channels;
 8import java.nio.channels.ReadableByteChannel;
 9
10public class JavaDownloadFileFromURL {
11
12    public static void main(String[] args) {
13        String url = "https://www.journaldev.com/sitemap.xml";
14
15        try {
16            downloadUsingNIO(url, "/Users/pankaj/sitemap.xml");
17
18            downloadUsingStream(url, "/Users/pankaj/sitemap_stream.xml");
19        } catch (IOException e) {
20            e.printStackTrace();
21        }
22    }
23
24    private static void downloadUsingStream(String urlStr, String file) throws IOException{
25        URL url = new URL(urlStr);
26        BufferedInputStream bis = new BufferedInputStream(url.openStream());
27        FileOutputStream fis = new FileOutputStream(file);
28        byte[] buffer = new byte[1024];
29        int count=0;
30        while((count = bis.read(buffer,0,1024)) != -1)
31        {
32            fis.write(buffer, 0, count);
33        }
34        fis.close();
35        bis.close();
36    }
37
38    private static void downloadUsingNIO(String urlStr, String file) throws IOException {
39        URL url = new URL(urlStr);
40        ReadableByteChannel rbc = Channels.newChannel(url.openStream());
41        FileOutputStream fos = new FileOutputStream(file);
42        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
43        fos.close();
44        rbc.close();
45    }
46
47}

downloadUsingStream: 在这个方法中,我们正在使用URLopenStream方法来创建输入流,然后我们正在使用输入流来读取输入流的数据并写到文件中。 downloadUsingNIO:在这个从URL方法下载的文件中,我们正在从URL流数据创建字节频道,然后使用输出流来写到文件中。

您可以从我们的 GitHub 存储库中查阅更多 Java IO 示例。

Published At
Categories with 技术
Tagged with
comments powered by Disqus