Может кто-нибудь, пожалуйста, дайте мне знать, как преобразовать ByteBuffer в длинный []?Как преобразовать ByteBuffer в long [] в Java
У меня был длинный [], чтобы начать с, который я преобразуется в ByteBuffer, используя следующий фрагмент кода:
byte[] convertToByteArray(long[] data) {
ByteBuffer byteBuffer = ByteBuffer.allocate(data.length * 8);;
LongBuffer longBuffer = byteBuffer.asLongBuffer();
longBuffer.put(data);
return byteBuffer.array();
}
Теперь я хотел бы сделать наоборот, и напишите несколько тестов, сравнивающих различные массивы до и после преобразования.
Я попытался следующие, но это не удается с NPE на JDK 1.6.0_26:
long[] convertToLongArray(byte[] bArray) {
ByteBuffer byteBuffer = ByteBuffer.wrap(bArray);
LongBuffer longBuffer = byteBuffer.asLongBuffer();
return longBuffer.array();
}
С уважением, Рошан
Что говорит StackTrace NPE? Часто бывает полезно предоставить достаточную информацию, если у вас есть проблема. – Kayaman
Действительно странно, что вы поместили данные в 'longBuffer' и вернули' byteBuffer.array() ', и все же вы считаете, что в первом случае вы получили правильный вывод. – SudoRahul
@ R.J ByteBuffer должен действовать как буфер поддержки, при этом LongBuffer является только представлением для него, поэтому код должен быть точным. Он просто разгружает операцию преобразования длинного 8 байта в LongBuffer. – Kayaman