各位,本人非常缺乏网络编程相关经验,现在遇到一个问题是:通过蓝牙串口通信进行简单的文本传输,发送方给我发出一段文本,文本以"\r\n"结尾。我通过inputStream.read(Bytes[])方式来读取,问题是我读的数据比较大,有500多byte的时候,我就会读到烂数据。下面是我读的代码段,各位看看,指点指点
// 1 如果没有读到结束符"\r\n",就一直读
while(!Fininshed)
{
    try 
      //2 从蓝牙socket的inputStream读取byte流存入到Bytes[1024] bytes
        size = mBufferedInputStream.read(bytes,0,1024);
      }
       catch(IOException e) {
                  Log.e(TAG,e.toString());
               return false;
              }
//3 byteConvertToString这个函数是将bytes数组暂存的byts存入StringBuffer result_read
    byteConvertToString(result_read,bytes,size);//4 result_total是用来保存完整流的StringBuffer对象,这里想将每次得到的result_read追加到总StringBuffer 、、//result_total上
     result_total.append(result_read);
               
//5 判断本次对到的流里是否包含有约定的结束符"\r\n",如果有,则表示已经读完了,设置flag Finished=true,退出循环
     tmp=result_read.toString();
      if(tmp.contains("\r\n")){
          Fininshed=true;
         }
}//6 最后一步,将得到的总StringBuffer转换为string,从而获得完整的String
result = result_total.toString();