有关InputStream.available()一问
http://www.javanb.com/j2me/1/10733.html
“返回此输入流方法的下一个调用方可以不受阻塞地从此输入流读取(或跳过)的字节数”
如果这是一个Socket的InputStream,那么它的read方法就可能导致阻塞(即表示read方法可能一直等待对方发送的数据而不返回)
available根本不是表示这个流有多长的意思,对于Socket之类的InputStream根本无法判断这个流会有多长。HttpConnection是基于更高层次罢了,它本质上就是向服务器的80端口发起了一个Socket连接
所以不能说有共同之处,而是HttpConnection依赖于Socket的存在。
http://www.javanb.com/j2me/1/10733.html
“返回此输入流方法的下一个调用方可以不受阻塞地从此输入流读取(或跳过)的字节数”
如果这是一个Socket的InputStream,那么它的read方法就可能导致阻塞(即表示read方法可能一直等待对方发送的数据而不返回)
available根本不是表示这个流有多长的意思,对于Socket之类的InputStream根本无法判断这个流会有多长。HttpConnection是基于更高层次罢了,它本质上就是向服务器的80端口发起了一个Socket连接
所以不能说有共同之处,而是HttpConnection依赖于Socket的存在。
解决方案 »
- android radiobutton 怎么改变drawabletop图片的大小
- 有没有人知道android怎么访问Red5服务器上面的视频啊?
- android虚拟机main中定义控件错误
- 关于android开发时电脑蓝屏的问题,求解。
- 求解,关于android来电桌面
- 急需listview多选用法的示例
- 就是删除svn库中之前备份的历史版本,有的版本不必要的我现在想删除了,但是不清楚怎么弄,求大神支招
- android 异步调用webservice问个问题
- Android的MediaRecorder拍摄的视频不清晰
- webview选择图片问题
- 请问android创建的AVD模拟器 默认的长和宽是多大?
- 新手在线求教一个小问题。
使用
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int count = 0;
while ((count = inputStream.read(buffer)) >= 0) {
bos.write(buffer, 0, count);
Log.e("---", "0");
}
byteBuffer = bos.toByteArray();
取到的数据照样是不完整的,或者有的时候会阻塞在循环里面,怎么回事啊?
HttpURLConnection hc = (HttpURLConnection) u.openConnection();
hc.setConnectTimeout(10000);
hc.setReadTimeout(10000);
hc.connect();
int mTotalBytes = hc.getContentLength();
这个问题太尴尬了,因为后面xml解析出错,我看了下log打印内容不够,一直以为是获取的内容不够呢
用system.out.println()打印就可以了