下载远程文件
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; } }