在Nashorn中将byte []转换为ArrayBuffer

时间:2016-01-15 21:46:11

标签: javascript java nashorn

如何在Nashorn中将字节数组转换为ArrayBuffer?我试图将二进制数据插入到纯JavaScript环境中(即,它无法访问Java.fromJava.to),因此希望创建一个字节数组的实例。

2 个答案:

答案 0 :(得分:3)

看起来我的方式错了。将它转换为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

答案 1 :(得分:1)

我认为你使用Uint8Array是正确的,但这段代码可能更合适:

function byteToUint8Array(byteArray) {
    var uint8Array = new Uint8Array(byteArray.length);
    uint8Array.set(Java.from(byteArray));
    return uint8Array;
}

此外,如果您确实需要ArrayBuffer,则可以使用uint8Array.buffer