实现原理其实很简单就是先打开再通过二进制流读取,不需要第三方jar包
/** * 下载图片 * @return */ private boolean downimg(String jpgurl,String jpgfile,String link){ try { //若获取图片的链接结尾不为/或\则在结尾添加一个/ if(!((link.substring(link.length()-1,link.length()).equals("/"))||(link.substring(link.length()-1,link.length()).equals("\\")))){ link=link+"/"; } setmonitor(); String str = "",path="",filename=jpgfile; jpgfile=jpgfile.replaceAll("http://", "").trim(); int xiegan = -1; xiegan=jpgurl.indexOf("http://"); if(xiegan==-1){ jpgurl=link+jpgurl; } xiegan = jpgfile.indexOf("/"); while (xiegan != -1) { str = jpgfile.substring(0, xiegan+1); jpgfile = jpgfile.substring(xiegan + 1); path += str; mkdir(path); xiegan = jpgfile.indexOf("/"); } str=""; xiegan=jpgurl.length(); while(!jpgurl.substring(xiegan-1,xiegan).equals("/")){ str=jpgurl.substring(xiegan-1,xiegan)+str; xiegan--; } //这段是下载图片的代码,有需要的只用看这段就行了 //--------------------------------------------- URL url = new URL(jpgurl); URLConnection con = url.openConnection(); con.setReadTimeout(1000*5); InputStream is = con.getInputStream(); byte[] bs = new byte[1024]; int len; OutputStream os = new FileOutputStream(filename.replaceAll("http://", "").trim()+"/"+str); while ((len = is.read(bs)) != -1) { os.write(bs, 0, len); } os.close(); is.close(); //----------------------------------------------- imginistr+="url"+imgsum+"="+link+";"; imginistr+="img"+imgsum+"=/"+ (filename.replaceAll("http://", "").trim()+"/"+str+";") .replaceAll("//", "/"); imginistr+="imgurl"+imgsum+"="+jpgurl+";"; imgsum++; return true; } catch (Exception e) { down_Frame.showtxt.setText(down_Frame.showtxt.getText()+"下载图片出错:"+e.getMessage()+"\n"); return false; } }