博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
下载远程文件
阅读量:5173 次
发布时间:2019-06-13

本文共 1986 字,大约阅读时间需要 6 分钟。

 

下载远程文件

package com.sd.microMsg.util;import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.net.URI;import java.net.URL;import java.net.URLConnection;import java.text.DecimalFormat;import java.text.SimpleDateFormat;import java.util.Date;import org.apache.log4j.Logger;// 下载文件public class RemoteUtil {    static Logger logger = Logger.getLogger(RemoteUtil.class);    public static String doGetFile(String URL, String filePath)            throws Exception {        URL fileUrl = RemoteUtil.class.getClassLoader().getResource(                "../../../" + filePath);        File file = new File(fileUrl.toURI());        if (!file.exists()) {            file.mkdirs();        }        URL url = new URL(URL);        URLConnection conn = url.openConnection();        // 获取文件名        String path = url.getPath();        Date d = new Date();        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssms");        String fileName = sdf.format(d) + ".jpg";        System.out.println("文件名称:" + fileName);        // 获取总字节数        int byteCount = conn.getContentLength();        double len = Double.parseDouble(byteCount + "") / (1024 * 1024);        DecimalFormat df = new DecimalFormat("0.##");        logger.info("文件大小:" + df.format(len) + "MB");        InputStream inStream = conn.getInputStream();        String newFile = fileUrl + fileName;        File file2 = new File(new URI(newFile));        FileOutputStream fs = new FileOutputStream(file2);        byte[] buffer = new byte[1204];        logger.info("文件开始下载....");        int byteRead = 0;        int byteSum = 0;        while ((byteRead = inStream.read(buffer)) != -1) {            byteSum += byteRead;            int num = byteSum * 100 / Integer.parseInt(byteCount + "");            // System.out.println("已下载" + num + "%....");            fs.write(buffer, 0, byteRead);        }        logger.info("文件下载完成!");        return fileName;    }}

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/mjorcen/p/3780492.html

你可能感兴趣的文章
JavaScript---Promise
查看>>
Django基于admin的stark组件创建(一)
查看>>
C. Tanya and Toys_模拟
查看>>
springboot jar包运行中获取资源文件
查看>>
基于FPGA实现的高速串行交换模块实现方法研究
查看>>
Java Scala获取所有注解的类信息
查看>>
delphi ,安装插件
查看>>
case when then的用法-leetcode交换工资
查看>>
11.28.cookie
查看>>
BeanShell简介
查看>>
python字符串操作
查看>>
不同程序语言的注释和变量要求
查看>>
语言基础(9):static, extern 和 inline
查看>>
ES5_03_Object扩展
查看>>
bzoj 2600: [Ioi2011]ricehub
查看>>
创建数据库,表
查看>>
工厂模式
查看>>
计算机网络基础知识
查看>>
C#里如何遍历枚举所有的项
查看>>
超级强大的鼠标手势工具
查看>>