Tengo la siguiente matriz escrita: Uint16Array(2) [ 60891, 11722 ] que me gustaría guardar en un archivo (binario). Luego me gustaría volver a leerlo en otro Uint16Array con el orden de los elementos conservados.
Intenté usar el módulo fs pero cuando voy a leer el archivo no obtengo los mismos números enteros:
//console.log(buffer) : Uint16Array(2) [ 60891, 11722 ] fs.writeFileSync(bufferPath, buffer, 'binary') const loadedBuffer = fs.readFileSync(bufferPath) //console.log(new Uint16Array(loadedBuffer)) : Uint16Array(4) [ 219, 237, 202, 45 ]Esto sucede porque la clase Buffer es una subclase de la clase Uint8Array de JavaScript y no una matriz Uint16Array como comentaste en tu código. Para obtener una copia de la matriz Uint16Array original, puede usar el new Uint16Array(buffer, byteOffset, length) como se menciona en la documentación de Uint16Array :
let arr = new Uint16Array(loadedBuffer.buffer, loadedBuffer.byteOffset, loadedBuffer.length / 2);