如何通过url文件路径下载到本地【解答】

源码如下:

import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;

public class FilesUtil {    
   /**
     * 通过url读取文件
     * @param url 路径
     */
    public static byte[] getFileStream(String url){
        try {
            URL httpUrl = new URL(url);
            HttpURLConnection conn = (HttpURLConnection)httpUrl.openConnection();
            conn.setRequestMethod("GET");
            conn.setConnectTimeout(5 * 1000);
            InputStream inStream = conn.getInputStream();//通过输入流获取图片数据
            byte[] btImg = readInputStream(inStream);//得到图片的二进制数据
            return btImg;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 从输入流中获取数据
     * @param inStream 输入流
     * @return
     * @throws Exception
     */
    public static byte[] readInputStream(InputStream inStream) throws Exception{
        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
        byte[] buffer = new byte[1024];
        int len = 0;
        while( (len=inStream.read(buffer)) != -1 ){
            outStream.write(buffer, 0, len);
        }
        inStream.close();
        return outStream.toByteArray();
    }

    /**
     * 下载文件到本地
     * @param url 文件全路径+文件名
     * @param localUrl 下载到本地的路径,例:windows:D://、linux:/home/server/img/
     */
    public static String downloadFileToLocal(String url,String localUrl){
        // 将网络文件下载本地
        try{
            byte[] data = FilesUtil.getFileStream(url);
            String substring = url.substring(url.lastIndexOf("/") + 1);
            String name = localUrl + substring;
            //创建一个文件对象
            File file = new File(name);
            //创建输出流
            FileOutputStream outStream = new FileOutputStream(file);
            //写入数据
            outStream.write(data);
            //关闭输出流,释放资源
            outStream.close();
            return name;
        }catch (Exception e){
            e.printStackTrace();
            return null;
        }
    }
}

作者:筱白爱学习!

期待三连(点赞,收藏,关注),关注筱白不迷路,筱白带你一起进步!!!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

筱白爱学习

你的鼓励将是我写作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值