Как преобразовать массив байтов в ArrayBuffer
в Nashorn? Я пытаюсь вставить двоичные данные в чистую среду JavaScript (т. Е. Не имеет доступа к Java.from
или Java.to
), и поэтому хотел бы создать экземпляр из массива байтов.Преобразование байт [] в ArrayBuffer в Нашорне
1
A
ответ
1
Похоже, я об этом поступил неправильно. Было более целесообразно преобразовать его в Uint8Array
, так как то, что я отправляю в , составляет массив байтов.
Я создал следующую функцию:
function byteToUint8Array(byteArray) {
var uint8Array = new Uint8Array(byteArray.length);
for(var i = 0; i < uint8Array.length; i++) {
uint8Array[i] = byteArray[i];
}
return uint8Array;
}
Это преобразует массив байтов (так byteArray
на самом деле типа byte[]
) в Uint8Array
.
0
Я думаю, что вы правы об использовании Uint8Array
, но этот код может быть предпочтительнее:
function byteToUint8Array(byteArray) {
var uint8Array = new Uint8Array(byteArray.length);
uint8Array.set(Java.from(byteArray));
return uint8Array;
}
Кроме того, если вы действительно нуждаетесь в ArrayBuffer
вы можете использовать uint8Array.buffer
.
Я не могу использовать 'Java.from', к сожалению, потому что я в чистой среде JavaScript в Нашорне. Но ваш ответ по-прежнему полезен. –