程序员社区

Java IO教程 --- Java 下载URL到文件中

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

从 URL 下载 Java 文件

这是来自 URL 示例程序的简单 java 下载文件。它显示了从 Java 中的 URL 下载文件的两种方法。

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();
    }

}

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

从 URL 下载 Java 文件

java从url下载文件,java代码从URL下载文件示例
这是来自 URL 示例程序的简单 java 下载文件。它显示了从 Java 中的 URL 下载文件的两种方法。

2.2M

104

Java Tricky Program 23 - Main 方法签名

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 方法中,我们使用 URLopenStream方法来创建输入流。然后我们使用文件输出流从输入流中读取数据并写入文件。

downloadUsingNIO:在这个从 URL 方法下载的文件中,我们从 URL 流数据创建字节通道。然后使用文件输出流将其写入文件。

您可以使用这些方法中的任何一种从 java 程序中的 URL 下载文件。如果您正在寻找性能,那么使用这两种方法进行一些分析,看看哪种方法适合您的需求。

赞(0) 打赏
未经允许不得转载:IDEA激活码 » Java IO教程 --- Java 下载URL到文件中

一个分享Java & Python知识的社区