下载图片代码片段

因项目需求写了个下载图片的函数,现记录下来
实现原理其实很简单就是先打开再通过二进制流读取,不需要第三方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;
		}

	}

猜你喜欢

转载自lin358.iteye.com/blog/1726316