Хорошо, вы пытаетесь прочитать int
из буфера, который занимает 4 bits
, а затем пытаетесь получить все данные после чтения 4 bits
Что я сделал, так это позвонил messageBuffer2.clear();
после прочтения int, чтобы решить эту проблему.вот полный код
System.out.println(messageBuffer2.getInt());
byte[] data = new byte[messageBuffer2.limit()];
messageBuffer2.clear();
messageBuffer2.get(data);
String dataString = new String(data, StandardCharsets.ISO_8859_1);
System.out.println(dataString);
Вывод:
35
#CARR0033TRANSACTION IGNORED+
Редактировать: Таким образом, в основном, когда вы звоните clear
, он сбрасывает различные переменные и также сбрасывает позицию, из которой он получаети вот как это исправить.