2016-01-15 2 views

ответ

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.

+0

Я не могу использовать 'Java.from', к сожалению, потому что я в чистой среде JavaScript в Нашорне. Но ваш ответ по-прежнему полезен. –

Смежные вопросы