如何获取字节数组中的字符串?

时间:2012-08-16 06:51:16

标签: bytearray

我有以下数据字段:

int iData1 = 100;   
int iData2 = 5000;
float fData3 = 80.5f;
float fData4 = 100.1f;
String str1 = "BBBB";   

将数据作为字节数组发送如下:

ByteBuffer buf=ByteBuffer.allocate(BUF_SIZE);  
buf.order(ByteOrder.BIG_ENDIAN);
buf.putInt(bData1);
buf.putInt(iData2);
buf.putFloat(fData3);
buf.putFloat(fData4);
buf.put(str1.getBytes());
sendBytes(buf.array());

要解析收到的字节数组,我可以得到每个字段:

iData1 = bbf.getInt();
iData2 = bbf.getInt();
iData3 = bbf.getInt();
fData3 = bbf.getFloat();
fData4 = bbf.getFloat();

但是如何获取接收到的数组中的字符串数据字段(str1)? 任何提示都将受到高度赞赏。 谢谢!

1 个答案:

答案 0 :(得分:1)

将字符串的长度放在字符串之前。然后分两步读取字符串:

sDataLen = bbf.getInt();
bbf.get(sData5, 0, sDataLen);