在Node.js中用.bin文件内容填充一个types化的数组
在我的服务器文件系统上,我有一个目录,其中包含一些充满16位整数的.bin文件。
如何在Node.js中加载一个Uint16Arrayvariables和特定.bin文件的内容?
我已经尝试过了:
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 }
我想出了以下解决scheme
fs.readFile('./myDirectoryContainingBinFiles/selectedFile.bin', function(err, data) { if (err) throw err; terrainData = new Uint16Array(toArrayBuffer(data)); });
在将二进制NodeJS缓冲区转换为JavaScript ArrayBuffer的接受答案中报告的toArrayBuffer
函数被定义为
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; }