根据URL下载文件

url 是一个可以放在浏览器地址栏直接下载文件的链接。下面通过程序自动下载

public static void main(String args[]){
		
		//下载至本机
		String download_url = "www.baodu.com/down/";
		String savePath = "C:/" ;
		String fileName = "temp.txt";
		downloadContract(savePath, download_url, fileName);
		
	}

	/**
	 * 从第三方下载合同至本地
	 * 
	 * @param savePath 保存路径
	 * @param contractUrl 下载地址
	 * @param fileName 保存文件名
	 * @return   
	 * @return ResultInfo  
	 * @author yulisao
	 * @createDate 2019-4-4
	 */
	public static void downloadContract(String savePath, String contractUrl, String fileName){
		//存放绝对路径
		String absolutePath = "";
		try {
			URL url = new URL(contractUrl);    
	        HttpURLConnection conn = (HttpURLConnection)url.openConnection();    
	                //设置超时间为3秒  
	        conn.setConnectTimeout(3*1000);  
	        //防止屏蔽程序抓取而返回403错误  
	        conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");  
	  
	        //得到输入流  
	        InputStream inputStream = conn.getInputStream();    
	        //获取自己数组  
	        byte[] getData = readInputStream(inputStream);      
	  
	        //文件保存位置  
	        File saveDir = new File(savePath);  
	        if(!saveDir.exists()){  
	            saveDir.mkdir();  
	        }  
	        File file = new File(saveDir+File.separator+fileName);      
	        FileOutputStream fos;
	        
			fos = new FileOutputStream(file);
			fos.write(getData);
			if (fos != null) {
				fos.close();
			}
			if (inputStream != null) {
				inputStream.close();
			}
			
			absolutePath = file.getAbsolutePath();
			
		} catch (Exception e) {
			e.printStackTrace();
			
		}
		
	}
	
	/** 
     * 从输入流中获取字节数组 
     * @param inputStream 
     * @return 
     * @throws IOException 
     */  
    public static  byte[] readInputStream(InputStream inputStream) throws IOException {    
        byte[] buffer = new byte[1024];    
        int len = 0;    
        ByteArrayOutputStream bos = new ByteArrayOutputStream();    
        while((len = inputStream.read(buffer)) != -1) {    
            bos.write(buffer, 0, len);    
        }    
        bos.close();    
        return bos.toByteArray();    
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值