网络知识 娱乐 HttpURLConnection获取图片数据流

HttpURLConnection获取图片数据流

从后台java中获取服务器图片数据(方法如下):

URL url = new URL("");

HttpURLConnection conn =(HttpURLConnection)url.openConnection();

InputStream inputStream=conn.getInputStream();

正常情况下,到这里已经能够获取数据流,再对数据流进行操作就可以了。

但是,在实际操作中发现:对于bmp格式的图片数据,在将数据流转为图片之后,图片出现了错位。

在使用inputStream.available()获取数据大小时,发现每调用一次,显示的结果都不同(原来对于bmp这种图片,由于没有压缩,导致数据比较大,采用分块传输)。

//检查是否传输完成

while(true){

length=inputStream.available();

if(length==inputStream.available()){

times++;

if(times==4)

break;

}else{

continue;

}

}

int n = 0;// 每次读取的字节长度

byte[] bb = new byte[1024];// 存储每次读取的内容

sun.misc.BASE64Encoder encoder= new sun.misc.BASE64Encoder();

while((n = inputStream.read(bb)) != -1){

buffer.append(encoder.encode(bb));

}

到此,图片就能够正常显示。

私信666领取资料