Java如何从URL中下载文件呢?

Java-教程王 Java经验 发布时间:2021-04-17 17:56:33 阅读数:13700 1

Java从URL下载文件的方法

    URL下载文件是我们做爬虫工作常用的操作,那么Java如何实现这一需求,下文将一一道来,如下所示:
     
    实现思路:
           我们可借助java.net.URL中的openStream()方法从url中下载文件 
例:
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 = "http://www.java265.com/index.html";

        try {
            downloadUsingNIO(url, "d:\tmp\test.html");

            downloadUsingStream(url, "d:\tmp\test.html");
        } 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文件的方法中
                                   使用URL openStream方法来创建输入流
                                  然后使用文件输出流从输入流中读取数据并写入文件

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

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/1618653729280.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者