当前位置: 代码迷 >> J2ME >> [乞援]http的is.read()最后读不到-1,是为什么
  详细解决方案

[乞援]http的is.read()最后读不到-1,是为什么

热度:9348   发布时间:2013-02-25 21:34:27.0
[求助]http的is.read()最后读不到-1,是为什么?
is = httpConn.openInputStream();

ByteArrayOutputStream bos = new ByteArrayOutputStream();

while (flag && (ch = is.read()) != -1)

{
  bos.write(ch);
}

我限制模拟器的吞吐量为56000

然后在模拟器上读返回的时候

同一个请求

大概有10%的概率,在数据读完的时候最后读不到-1

导致程序堵死在is.read()

非常郁闷

哪位大牛知道怎么解决

谢谢


------解决方案--------------------------------------------------------
能catch住什么异常吗? 比如EOFException
------解决方案--------------------------------------------------------
帮顶
------解决方案--------------------------------------------------------
帮顶
------解决方案--------------------------------------------------------
把你确定他读完的情况后,ch里面的数据打印一下看看
------解决方案--------------------------------------------------------
关注 是否是链路堵塞
------解决方案--------------------------------------------------------
is = httpConn.openInputStream();

ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] data=new byte[512];
int length=0;
do{
length=is.read(data);
 bos.write(data);

}while{length>=0};


------解决方案--------------------------------------------------------
呵呵是啊,没遇到过,你可以上真机试试,也许真机完全没事,就不用浪费时间研究这个了,呵呵。
  相关解决方案