Javascript 将文件读入Node.js中的特定内存块

Javascript 将文件读入Node.js中的特定内存块,javascript,node.js,memory,fs,Javascript,Node.js,Memory,Fs,可以让Node.js以某种方式将文件作为二进制文件读取到特定的内存插槽中吗 let buffer = new Uint8Array let location = 0 let path = 'foo.binary' fs.readIntoMemoryLocation(path, buffer, location) 这样可能吗 我想知道,因为我在一个数组缓冲区中要处理一堆东西,我想向其中添加一个文件,而不是将文件作为自己的缓冲区。也不需要将文件从一个地方复制到另一个地方。如果不是在Node.js中

可以让Node.js以某种方式将文件作为二进制文件读取到特定的内存插槽中吗

let buffer = new Uint8Array
let location = 0
let path = 'foo.binary'
fs.readIntoMemoryLocation(path, buffer, location)
这样可能吗

我想知道,因为我在一个数组缓冲区中要处理一堆东西,我想向其中添加一个文件,而不是将文件作为自己的缓冲区。也不需要将文件从一个地方复制到另一个地方。如果不是在Node.js中,那么浏览器会以某种方式运行吗

可以让Node.js以某种方式将文件作为二进制文件读取到特定的内存插槽中吗

let buffer = new Uint8Array
let location = 0
let path = 'foo.binary'
fs.readIntoMemoryLocation(path, buffer, location)
是的,和接口都允许您传入一个缓冲区,并将偏移量传递到要将数据读入的缓冲区中

fs.readFile()
接口不提供此功能,因此您必须自己打开文件,将数据读入缓冲区,然后关闭文件。如果您统计文件以查看它有多大,您仍然可以通过一次读取操作将整个文件读取到缓冲区中

可以让Node.js以某种方式将文件作为二进制文件读取到特定的内存插槽中吗

let buffer = new Uint8Array
let location = 0
let path = 'foo.binary'
fs.readIntoMemoryLocation(path, buffer, location)
是的,和接口都允许您传入一个缓冲区,并将偏移量传递到要将数据读入的缓冲区中


fs.readFile()
接口不提供此功能,因此您必须自己打开文件,将数据读入缓冲区,然后关闭文件。如果您统计文件的大小,您仍然可以通过一次读取操作将整个文件读入缓冲区。

Horray,谢谢!!!在浏览器中也有这样做的方法吗D@LancePollard应该可以通过该方法在浏览器中读取数据流到您自己的ArrayBufferView中(因此允许写入您可以事先指定的单个ArrayBuffer),除非还没有供应商实现ReadableStreamByObjReader。。。因此,第二个最接近的方法是使用ReadableStreamDefaultReader,为每个区块分配一个小ArrayBuffer,并将该区块的数据复制到最终的大ArrayBuffer中,效率要低得多…Horray,谢谢!!!在浏览器中也有这样做的方法吗D@LancePollard应该可以通过该方法在浏览器中读取数据流到您自己的ArrayBufferView中(因此允许写入您可以事先指定的单个ArrayBuffer),除非还没有供应商实现ReadableStreamByObjReader。。。因此,第二个最接近的方法是使用ReadableStreamDefaultReader,为每个区块分配一个小ArrayBuffer,并将该区块的数据复制到最终的大ArrayBuffer中,效率要低得多。。。