2012-08-16 121 views
0

我有以下数据字段:如何获取字节数组中的字符串?

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

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

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

嗨Barmar。你会通过“将字符串的长度放在字符串前面”来进一步阐明。 – Aloha 2012-08-16 07:23:59

+0

'buf.putInt(strlen(str1));' – Barmar 2012-08-16 07:26:09

+0

调用sData5 = bbf.get(sDataLen);我得到一个字节,接下来我该怎么办? – Aloha 2012-08-16 07:36:56

相关问题