javascript - 在 Node.js 中使用 .bin 文件内容填充类型化数组

标签 javascript node.js typed-arrays

在我的服务器文件系统上,我有一个目录,其中包含一些填充 16 位整数的 .bin 文件。

如何使用 Node.js 中特定 .bin 文件的内容加载 Uint16Array 变量?

我已经尝试过:

var arrayFromBinFile = new Uint16Array('./myDirectoryContainingBinFiles/selectedFile.bin')

通过在node.js中使用console.log,我得到的是:

{ 
  BYTES_PER_ELEMENT: 2,
  get: [Function: get],
  set: [Function: set],
  slice: [Function: slice],
  subarray: [Function: subarray],
  buffer: { slice: [Function: slice], byteLength: 0 },
  length: 0,
  byteOffset: 0,
  byteLength: 0 
}

最佳答案

我想出了以下解决方案

fs.readFile('./myDirectoryContainingBinFiles/selectedFile.bin', function(err, data)
{
    if (err) throw err;
    terrainData = new Uint16Array(toArrayBuffer(data));
});

其中 toArrayBuffer 函数,在来自 Convert a binary NodeJS Buffer to JavaScript ArrayBuffer 的接受答案中报告,定义为

function toArrayBuffer(buffer) {
    var ab = new ArrayBuffer(buffer.length);
    var view = new Uint8Array(ab);
    for (var i = 0; i < buffer.length; ++i) {
        view[i] = buffer[i];
    }
    return ab;
}

关于javascript - 在 Node.js 中使用 .bin 文件内容填充类型化数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28761155/

相关文章:

javascript - 如何避免 TypeError : callback. apply 不是函数并且 Callback 已被调用? Node js

java - getTypedArray 调用后 TypedArray 为空

javascript - 剧作家 waitFor 将innerText更改为精确值

node.js - 从hostgator的vps运行 Node

javascript - 在 X 和 O 之间切换的井字游戏

javascript - 使用数组推送获取额外的括号

javascript - 如何使用 javascript 使用 localstorage 在浏览器中存储 Uint8array

javascript - ImageData 数组中的索引逻辑是什么?

javascript - jQuery 触发元素的事件

javascript - 更新 li 元素的属性 data-id Nestable 不更新