我需要從混合的數據類型構造一個Java字節數組,但我不知道如何做到這一點。這是我的類型:如何將混合Java數據類型轉換爲Java字節數組?
byte version = 1; // at offset 0
short message_length = // the size of the byte[] message I am constructing here, at offset 1
short sub_version = 15346; // at offset 3
byte message_id = 2; // at offset 5
int flag1 = 10; // at offset 6
int flag2 = 0; // at offset 10
int flag3 = 0; // at offset 14
int flag4 = 0; // at offset 18
String message = "the quick brown fox jumps over the lazy dog"; // at offset 22
我知道該字符串,我可以使用
message.getBytes("US_ASCII");
我知道了int類型,我可以使用
Integer.byteValue();
我知道短值,我可以使用
Short.byteValue();
而通過te值已經是字節,我只是不確定如何將所有這些組合到單個字節數組中。我看了一下
System.arraycopy();
這是正確的過程中,我只是將所有的數據字節,並開始「串聯」的字節數組arraycopy?
我正在與一些遠程服務器進行通信,我無法控制,而這是他們需要的消息過程。
'Integer.byteValue();'會給你一個'byte'。據推測,你想要4. –
有幾種方法。你提到的那些是有損的,這意味着你會丟失信息。 (例如,如果您的int爲'23467',則不適合單個字節,'é'不適用於US-ASCII編碼)。你需要首先知道預期的格式是什麼。 – njzk2
@ njzk2我不確定你在問什麼。在我的問題中,我所具有的價值觀基本上是他們永遠都會做的。 – Brian