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;
        }
    }
  • 相关阅读:
    linux下的crontab定时执行任务命令详解
    494. Target Sum
    347. Top K Frequent Elements
    5. Longest Palindromic Substring
    时间复杂度计算方法
    62. Unique Paths
    54. Spiral Matrix && 59. Spiral Matrix II
    57. Insert Interval
    53. Maximum Subarray
    42.Trapping rain water
  • 原文地址:https://www.cnblogs.com/mjorcen/p/3780492.html
Copyright © 2011-2022 走看看