Java. Привести массив byte[ ] к double, float и short.

243
20 октября 2017, 12:06

Есть моделька, в ней три поля:

private double timeStamp;
private float duration;
private short scoreBits;

Есть массив байтов:

byte[] bytes = new byte[14];

Задача следующая: нужно первые 8 байтов сэтнуть в поле double моей модели, следующие 4 - в float, следующие 2 - в short.

И я вообще не понимаю как это сделать. help me plz

Answer 1

Как то так:

    byte[] bytes=new byte[14];
    double myDouble=ByteBuffer.wrap(bytes).getDouble(0);
    float myFloat=ByteBuffer.wrap(bytes).getFloat(8);
    short myShort=ByteBuffer.wrap(bytes).getShort(12);
Answer 2

Можно воспользоваться ByteBuffer

ByteBuffer.wrap(Arrays.copyOfRange(bytes , 0, 8)).getDouble();
ByteBuffer.wrap(Arrays.copyOfRange(bytes , 8, 12)).getFloat();
ByteBuffer.wrap(Arrays.copyOfRange(bytes , 12, 14)).getShort(); //index from - включает, а вот to не включается
READ ALSO
Удвоение цикла при подписке на событие

Удвоение цикла при подписке на событие

Добрый день! Помогите разобратьсяПишу Клиент - серверное приложение

329
Создание модели ADO NET из файла базы данных SDB

Создание модели ADO NET из файла базы данных SDB

Есть файл БД с расширением SDBКак его подключить в Visual Studio и создать из не модель, для последующей полноценной работы через Linq

283