如果服务器发来的字节流没有作任何标记,只是在发完一次数据后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);


版权所有 罗明
posted on 2006-03-19 21:30 罗明 阅读(1229) 评论(3)  编辑  收藏 所属分类: JavaJ2ME
Comments
  • # re: J2ME网络程序中判断一次数据发送的结束
    jimmyvk
    Posted @ 2006-11-09 15:00
    可不可以帮我解释一下:
    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网络程序中判断一次数据发送的结束
    Andy luo
    Posted @ 2006-11-10 00:01
    read每次只能读8k,available也是一样,但你可以连续调用read来读完所有字节  回复  更多评论   
  • # 美国SEVEN中国研发中心招聘
    王小姐
    Posted @ 2007-11-27 11:51
    您好:

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

    王小姐  回复  更多评论   

只有注册用户登录后才能发表评论。


网站导航: