java 从网络Url中下载文件

/** 
     * 从网络Url中下载文件 
     * @param urlStr 
     * @param fileName 
     * @param savePath 
     * @throws IOException 
     */  
    public static void  downLoadFromUrl(String urlStr,String fileName,String savePath){  
    try {
    URL url = new URL(urlStr);    
            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 = new FileOutputStream(file);       
            fos.write(getData);   
            if(fos!=null){  
                fos.close();    
            }  
            if(inputStream!=null){  
                inputStream.close();  
            }  
} catch (Exception e) {
            e.printStackTrace();
}
  
    }  
  
    /** 
     * 从输入流中获取字节数组 
     * @param inputStream 
     * @return 
     * @throws IOException 
     */  
    public static  byte[] readInputStream(InputStream inputStream) {  
    ByteArrayOutputStream bos = new ByteArrayOutputStream();    
    try {
     byte[] buffer = new byte[1024];    
           int len = 0;    
           while((len = inputStream.read(buffer)) != -1) {    
               bos.write(buffer, 0, len);    
           }    
           bos.close();  
} catch (Exception e) {
e.printStackTrace();
}
        return bos.toByteArray();    
    }    
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值