在我的服务器文件系统上,我有一个目录,其中包含一些用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
函数,在从二进制NodeJS缓冲区转换为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;
}