你的位置:首页 > Java教程

[Java教程]根据url地址单个或批量下载图片


我们在java开发的时候会遇到通过url地址下载图片的情况。方便起见,我把通过url地址下载图片封装了tool工具类,方便以后使用
1.根据如:http://abc.com/hotels/a.jpg 的url地址下载文件(图片)
 
 
//调用下面的方法
download(urlString, filename, savePath+"/"+String.valueOf(imgList.get(i).get("hotelId")));

 


 

/*** 根据路径 下载图片 然后 保存到对应的目录下* @param urlString 下载源地址路径 http://media.expedia.com/hotels/1000000/10000/100/1/1_17_b.jpg* @param filename 文件名* @param savePath 保存路径 /jdylog/pic/JDY000001* @return* @throws Exception*/public void download(String urlString, String filename,String savePath) throws Exception {// 构造URL// System.setProperty("http.proxySet", "true");// System.setProperty("http.proxyHost", "192.168.2.138");// System.setProperty("http.proxyPort", "1081");URL url = new URL(urlString);// 打开连接URLConnection con = url.openConnection();//设置请求的路径con.setConnectTimeout(5*1000);// 输入流InputStream is = con.getInputStream(); // 1K的数据缓冲byte[] bs = new byte[1024];// 读取到的数据长度int len;// 输出的文件流File sf=new File(savePath);if(!sf.exists()){sf.mkdirs();}OutputStream os = new FileOutputStream(sf.getPath()+"/"+filename);// 开始读取while ((len = is.read(bs)) != -1) {os.write(bs, 0, len);}// 完毕,关闭所有链接os.close(); is.close();}