2012-08-16 5 views
0

나는 다음 한 데이터 필드 :바이트 배열의 문자열을받는 방법은 무엇입니까?

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

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()); 

나는 각 필드에게 후속를 얻을 수, 바이트 배열이 수신 구문 분석 : 아래 바이트 배열로

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

전송 데이터

하지만 배열에서 문자열 데이터 필드 (str1)를받는 방법은 무엇입니까? 힌트를 주시면 감사하겠습니다. 감사합니다.

답변

1

문자열 앞에 문자열의 길이를 넣으십시오. 그런 다음 문자열을 두 단계로 읽습니다.

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

안녕하세요. "문자열 앞에 문자열의 길이를 넣으십시오."라고 더 명확하게 설명하겠습니까? – Aloha

+0

'buf.putInt (strlen (str1)); ' – Barmar

+0

호출 후 sData5 = bbf.get (sDataLen) 호출; 바이트가 생기면 다음에 무엇을해야합니까? – Aloha

관련 문제