zoukankan      html  css  js  c++  java
  • 下载远程文件

    下载远程文件

    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;
        }
    }
  • 相关阅读:
    清除浮动
    svg自己记得文档
    CSS3最颠覆性的动画效果,基本属性[过渡和2D]
    下载svg图片转化为字体使用!!!!!!
    CSS3 Transform的perspective属性【转载,自己学习使用】
    CSS炫酷样式,不断编辑更新...
    VC++ GDI+编程的字体和文本绘制
    图像处理常用算法
    详细解说STL hash_map系列
    微软公司软件开发模式简介 收藏
  • 原文地址:https://www.cnblogs.com/mjorcen/p/3780492.html
Copyright © 2011-2022 走看看