我们在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(); }