我需要从混合的数据类型构造一个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