Мне нужно построить массив байтов 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();
И по те значения уже являются байтами, я просто не уверен, как объединить их все в один массив байтов. Я прочитал о
System.arraycopy();
Является ли это правильный процесс, я просто конвертировать все данные в байты, и начать «конкатенацию» массив байт с ArrayCopy?
Я общаюсь с каким-то отдаленным сервером. Я не контролирую, и это процесс сообщения, который им нужен.
'Integer.byteValue();' даст вам один 'byte'. Предположительно, вы хотите 4. –
существует несколько методов. те, кого вы упомянули, являются потерями, то есть вы потеряете информацию. (например, если у вас есть int, то есть '23467', он не будет входить в один байт, а' é' не будет работать с кодировкой US-ASCII'. Сначала вам нужно знать, что такое ожидаемый формат. – njzk2
@ njzk2 Я не уверен, что вы просите. Значения, которые у меня есть в моем вопросе, суть, по сути, то, что они будут всегда. – Brian