Доброе утро. Мне нужно сохранить данные в следующем формате в ByteBuffer. Этот ByteBuffer затем сохраняется и затем печатается на консоль.Написание смешанного типа данных в ByteBuffer
Формат данных:
10:30 [2] This is my message to you.
IntCharInt Char CharIntChar Char String
Запоминание часть выглядит просто.
ByteBuffer buff = ByteBuffer.allocate(100);
buffer.putInt(10).putChar(':').putInt(30).putChar(' ');
buffer.putChar('[').putInt(2).putChar(']').putChar(' ');
buffer.put("This is my message to you.".getBytes());
я могу получить основной массив байтов, выполнив:
byte[] bArray = buff.array();
Как кодировать Баррэ в строку таким образом, что она равна исходной строке (по ценностного равенства)?
Много спасибо
Вы, кажется, находитесь на правильном пути, так что конкретно не работает? – Silverclaw
Обратите внимание: 'buffer.putInt (10)' не создает строку «10». Он создает четыре байта, содержащих целое число 10, закодированное как большое число endian! Ваш код выглядит так, будто вы хотите кодировать все свои данные как String, что не является целью ByteBuffer. Если вы хотите создать строку, используйте вместо нее 'StringWriter'. – Robert