在我的服务器文件系统上,我有一个目录,其中包含一些填充 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/