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;
        }
    }
  • 相关阅读:
    Codeforces Round #311 (Div. 2)题解
    firefox 被劫持hao123 主页
    国有航空为啥“放下身段”读春秋?
    ORACLE中常见SET指令
    最大概率法分词及性能測试
    怎样利用JDBC连接并操作Oracle数据库
    hdu5240
    代码调试过程中easy遇到的问题
    最简单的基于FFmpeg的AVDevice样例(读取摄像头)
    FPGA 功耗结构设计
  • 原文地址:https://www.cnblogs.com/mjorcen/p/3780492.html
Copyright © 2011-2022 走看看