目前在开发人民网新闻android客户端,其中用到了数据压缩,以减少网络数据流量。在开发过程中,发现一个问题
就是2.3平台手机系统不能解压读取的数据,经过排查发现获取缓冲输入流的长度时,出现错误,如果读入未压缩字串
无问题,一旦读入压缩字串,便会出问题(2.3以前的平台不会出现此问题)。解决此问题的方法就是取输入流的avaliable时,
先read一下,在此感谢张玉杰同学的支持,代码如下
ByteArrayBuffer buffer=null;
try{
URLConnection con=url.openConnection();
InputStream inputStream=con.getInputStream();
BufferedInputStream b=new BufferedInputStream(inputStream);
int data=0;
data=b.read();
System.out.println(b.available());
buffer=new ByteArrayBuffer(b.available());
buffer.append(data);
while((data=b.read())!=-1){
buffer.append((byte)data);
}
}catch (Exception e) {
return null;
}