在 Nashorn 中将 byte[] 转换为 ArrayBuffer

Converting byte[] to ArrayBuffer in Nashorn

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

看来我做错了。将其转换为 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.

我认为您使用 Uint8Array 是正确的,但此代码可能更可取:

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

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