J2ME网络程序中判断一次数据发送的结束

Posted on 2006-03-19 21:30 罗明 阅读(735) 评论(3)  编辑  收藏 所属分类: JavaJ2ME
如果服务器发来的字节流没有作任何标记,只是在发完一次数据后flush(),则在客户端可以用inputStream.available()来判断流的长度,但一定要在调用read()至少一次之后,不然就只能得到零值。

如下代码所示:

//将接收到的数据存到字节数组array
int firstChar = inputStream.read();
int length = inputStream.available();
byte[] array = new byte[length+1];
array[
0= (byte)firstChar;
inputStream.read(array,
1,length);


版权所有 罗明

Feedback

# re: J2ME网络程序中判断一次数据发送的结束  回复  更多评论   

2006-11-09 15:00 by jimmyvk
可不可以帮我解释一下:
httpConn = (HttpConnection) Connector.open(URL);
InputStream is = httpConn.openInputStream();
ByteArrayOutputStream baos = new ByteArrayOutputStream();

byte[] bytes = new byte[is.available()];

while (is.read(bytes) != -1) {
baos.write(bytes);
}

我要访问的资源的字节数大于8k,为什么is.available()只能得到8k,而不是获得流字节的正确大小,请问是什么原因,谢谢!

# re: J2ME网络程序中判断一次数据发送的结束  回复  更多评论   

2006-11-10 00:01 by Andy luo
read每次只能读8k,available也是一样,但你可以连续调用read来读完所有字节

# 美国SEVEN中国研发中心招聘  回复  更多评论   

2007-11-27 11:51 by 王小姐
您好:

这里是美国SEVEN中国研发中心.我们正在招聘J2ME工程师.具体信息可登录www.sevenhangzhou.com 如您有意向,请发邮件至hr@sevenhangzhou.com 或是电话至 0571-88315471
欢迎您的来电来函.

王小姐

标题  
姓名  
主页
验证码 *  
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-03-21 18:29 编辑过
 
成果网帮您增加网站收入
 
相关链接:
网站导航: