使用Java实现远程文件下载到本地目录

这篇具有很好参考价值的文章主要介绍了使用Java实现远程文件下载到本地目录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用Java实现远程文件下载到本地目录


前言

今天开发时遇见了一个下载附件的需求,他的附件是存在一个网盘里查询时只是给我返回了一个https的路径,需要通过这个路径把附件下载到本地的目录里


一、正文介绍

import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;

/**
 * @Author
 * @Date
 * @Version 1.0
 * <p>备注:远程文件下载到本地 方法二选一<p>
 */
public class downloadUtil {

    /**
     * 下载远程文件并保存到本地
     *
     * @param remoteFilePath-远程文件路径
     * @param localFilePath-本地文件路径(带文件名)
     */
    public static void downloadFile1(String remoteFilePath, String localFilePath) {
        URL urlfile = null;
        HttpURLConnection httpUrl = null;
        BufferedInputStream bis = null;
        BufferedOutputStream bos = null;
        File f = new File(localFilePath);
        try {
            urlfile = new URL(remoteFilePath);
            httpUrl = (HttpURLConnection) urlfile.openConnection();
            httpUrl.connect();
            bis = new BufferedInputStream(httpUrl.getInputStream());
            bos = new BufferedOutputStream(new FileOutputStream(f));
            int len = 2048;
            byte[] b = new byte[len];
            while ((len = bis.read(b)) != -1) {
                bos.write(b, 0, len);
            }
            bos.flush();
            bis.close();
            httpUrl.disconnect();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                bis.close();
                bos.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    /**
     * 下载远程文件并保存到本地
     *
     * @param remoteFilePath-远程文件路径
     * @param localFilePath-本地文件路径(带文件名)
     */
    public static void downloadFile2(String remoteFilePath, String localFilePath) {
        URL website = null;
        ReadableByteChannel rbc = null;
        FileOutputStream fos = null;
        try {
            website = new URL(remoteFilePath);
            rbc = Channels.newChannel(website.openStream());
            fos = new FileOutputStream(localFilePath);//本地要存储的文件地址 例如:test.txt
            fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            if(fos!=null){
                try {
                    fos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if(rbc!=null){
                try {
                    rbc.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }


    /**
     * 小试牛刀
     * @param args
     */
    public static void main(String[] args) {
        /*远程文件路径*/
        String remoteFilePath1 = "https://tenfei01.cfp.cn/creative/vcg/800/new/VCG211157640278-VXD.jpg";
        String remoteFilePath2 = "https://pic.3gbizhi.com/2019/1112/20191112013312648.jpg";
        /*本地文件路径(带文件名)*/
        String localFilePath1 ="E:\\LeStoreDownload\\update\\广州塔.jpg";
        String localFilePath2 ="E:\\LeStoreDownload\\update\\大桥.jpg";
        downloadFile1(remoteFilePath1,localFilePath1);
        downloadFile2(remoteFilePath2,localFilePath2);
    }

}

二、测试介绍

这里我使用的是网上搜索的图片路径做了一下测试仅供参考 如正文介绍

总结

使用Java实现远程文件下载到本地目录记录就到此结束了文章来源地址https://www.toymoban.com/news/detail-519746.html

到了这里,关于使用Java实现远程文件下载到本地目录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CentOS如何使用Docker部署Plik服务并实现公网访问本地设备上传下载文件

    本文介绍如何使用Linux docker方式快速安装Plik并且结合Cpolar内网穿透工具实现远程访问,实现随时随地在任意设备上传或者下载或者共享文件! Plik是一个可扩展且友好的临时文件上传系统,类似于wetransfer。它具有强大的命令行客户端和易于使用的Web UI,支持多个数据后端(文

    2024年04月17日
    浏览(27)
  • Windows系统下载安装Plex媒体服务结合内网穿透远程访问本地影音文件

    用手机或者平板电脑看视频,已经算是生活中稀松平常的场景了,特别是各种碎片时间(追剧下饭、地铁上刷剧等等),看个喜欢的视频必不可少。但不知道为什么,各大影音平台总能轮流占住热播剧,还限定很多剧只能会员观看,搞得我们总有交不完的会员费。此时,拥有

    2024年04月15日
    浏览(64)
  • JAVA使用POI对Word docx模板文件替换数据工具类并通过浏览器下载到本地

    需求:需要上传一个带有占位符的模板至数据库保存,然后解析模板的占位符,通过类计算结果替换模板中的占位符,并且保存至本地 难点:1.由于我数据库保存是本地保存,并没有path 所以获取模板的path是个难点 2.如何使用计算类,由于我的类是和占位符绑定的,什么样的

    2024年02月16日
    浏览(35)
  • java http远程调用接口下载文件

    远程调用http接口下载文件,接口返回流 一、将文件保存本地 二、将接收到流直接返回

    2024年02月14日
    浏览(35)
  • 使用Xshell 将Linux文件下载到本地或者将本地的文件上传到Linux

    第一步:在Linux中安装上传下载功能的软件 第二步:将Linux文件下载到本地:此时我的Linux桌面上有一个叫test.c的文件,我要将它下载到windows桌面上。 在Linux终端输入: 这里使用的是相对路径,使用绝对路径也可以。输入此命令后按下回车键会弹出一个对话框,选择你要存储

    2024年02月07日
    浏览(46)
  • 远程xml读取解析,将image url下载到本地,延时队列定时删除文件,图片访问路径保存在数据库中

    远程xml部分内容 mq发布端定时任务发送消息 mq消费端 1,远程xml读取 2,xml解析,将image中图片url保存在集合中 3,遍历集合,当本地不存在此图片时,下载图片至本地 4,将图片路径传给延时队列,用于稍后删除图片 5,保存自定义图片访问路径等信息到数据库 XMLUtil读取远程

    2024年02月15日
    浏览(35)
  • html利用a标签实现下载本地的文件

            在写html页面的时候,需要在网页上提供一个下载按钮可以下载我自己电脑中的文件。我已经知道了该文件的路径,但是之前看了很多文章都没找到正确办法,一直不知道如何能够下载本地的文件,经过不断实验发现,可以利用a标签中的downlo属性,同时将href属性设

    2023年04月15日
    浏览(32)
  • 【微信小程序】下载文件到本地并使用

    1.使用小程序文件管理API (wx.getFileSystemManager()) 2.1 判断要下载的文件是否存在(accessSync)于本地 通过 try 去判断 进入catch则 没有存在于本地 2.2 通过wx.downloadFile  设置filePath 下载文件保存本地 3.读取(readFileSync)本地文件并使用 catch 处理未加载到数据 重新 wx.downloadFile  设置

    2024年02月09日
    浏览(124)
  • 【Java】对Minio指定Bucket大量文件的批量下载与本地文件夹的批量上传

    需要批量下载一个bucket下的内容,bucket下文件有19GB+,且文件夹结构复杂,使用官方的Console无法完成这么大量文件的下载,而且也不支持文件夹的分享,所以自己写个工具下载,顺便把上传的也写了。 使用官方的打包下载,由于文件太多,一直转,而且session一失效,或者刷

    2024年02月09日
    浏览(41)
  • Azure Blob 文件下载及本地开发使用配置

    1.我们在本地开发如果没有Azure 账户及blob资源,可以在本地调试开发 所需工具下载:Azure 存储管理器下载可以在本地创建容器Container及Blob 上传所需文件对文件进行操作 也可以管理Azure云的Blob Azure 存储资源管理器 – 云存储管理 | Microsoft Azure 2.打开后创建本地Blob存储  3.本地

    2024年02月07日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包