远程下载文件到本地

远程下载文件到本地

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>
posted @ 2022-04-22 15:28  晴天阴天下雨天  阅读(156)  评论(0)    收藏  举报