Javascript 在Nashorn中将字节[]转换为ArrayBuffer

Javascript 在Nashorn中将字节[]转换为ArrayBuffer,javascript,java,nashorn,Javascript,Java,Nashorn,如何在Nashorn中将字节数组转换为ArrayBuffer?我试图将二进制数据插入纯JavaScript环境(即,它无法访问Java.from或Java.to),因此希望创建一个字节数组的实例 看来我走错了方向。将其转换为Uint8Array更有意义,因为我发送的是一个字节数组 我创建了以下函数: function byteToUint8Array(byteArray) { var uint8Array = new Uint8Array(byteArray.length); f

如何在Nashorn中将字节数组转换为
ArrayBuffer
?我试图将二进制数据插入纯JavaScript环境(即,它无法访问
Java.from
Java.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;
}
函数byteToUint8Array(byteArray){
var uint8Array=新的uint8Array(byteArray.length);
对于(变量i=0;i

这将把字节数组(因此
byteArray
实际上是
byte[]
类型)转换成
Uint8Array
我认为您使用
Uint8Array
是正确的,但这段代码可能更可取:

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

另外,如果你真的需要
ArrayBuffer
你可以使用
uint8Array.buffer

我不能使用
Java.from
很遗憾,因为我在纳什伯恩的纯JavaScript环境中。但是你的答案仍然很有用。Java未定义,但uint8Array.buffer对我帮助很大,谢谢!