远程下载文件到本地
1、路径地址的创建
String fileLocal = "D:" + File.separator + "test"
File tempFile = new File(fileLocal);
if (!tempFile.exists()) {// 如果路径不存在
if (!tempFile.isDirectory()) {// 如果是路径
tempFile.mkdirs();// 创建路径
}
}
2、下载文件到本地方法
/**
* 下载文件到本地
* @param fileUrl 远程地址
* @param fileLocal 本地路径 D:/test
* @throws Exception
*/
public static void downloadFile(String fileUrl,String fileLocal){
DataInputStream in =null;
DataOutputStream out =null;
HttpURLConnection urlCon =null;
try{
if(StringUtils.isNotBlank(fileUrl)){
LOG.info("下载文件到本地fileUrl="+fileUrl);
URL url = new URL(fileUrl);
urlCon = (HttpURLConnection) url.openConnection();
urlCon.setConnectTimeout(6000);
urlCon.setReadTimeout(6000);
int code = urlCon.getResponseCode();
if (code != HttpURLConnection.HTTP_OK) {
throw new Exception("文件读取失败");
}
//读文件流
in = new DataInputStream(urlCon.getInputStream());
out = new DataOutputStream(new FileOutputStream(fileLocal));
byte[] buffer = new byte[2048];
int count = 0;
while ((count = in.read(buffer)) > 0) {
out.write(buffer, 0, count);
}
}
}catch (Exception e) {
LOG.error("", e);
}finally{
try{if(out!=null)out.close();}catch (Exception e) {}
try{if(in!=null)in.close();}catch (Exception e) {}
try{if(urlCon!=null)urlCon.disconnect();}catch (Exception e) {}
}
}
3、StringUtils工具包的依赖
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>