Javascript node.js/express-在二进制文件中每N个字流一次

Javascript node.js/express-在二进制文件中每N个字流一次,javascript,node.js,stream,Javascript,Node.js,Stream,如果我想传输整个二进制文件,我可以做一些简单的事情,如: res.sendfile(file); 我还可以打开一个流,并手动执行一些操作: var stream = require('fs').createReadStream(file); stream.pipe(res); 我无法找到只发送部分(非常大)文件的方法。在我的特殊情况下,我有一个交错int16s的二进制文件,我希望能够将一组数据从其余数据中分离出来。也就是说,如果我想要文件中的第5组数据,我需要: 打开文件 查找前8个字节 在

如果我想传输整个二进制文件,我可以做一些简单的事情,如:

res.sendfile(file);
我还可以打开一个流,并手动执行一些操作:

var stream = require('fs').createReadStream(file);
stream.pipe(res);
我无法找到只发送部分(非常大)文件的方法。在我的特殊情况下,我有一个交错int16s的二进制文件,我希望能够将一组数据从其余数据中分离出来。也就是说,如果我想要文件中的第5组数据,我需要:

  • 打开文件
  • 查找前8个字节
  • 在到达文件末尾之前:

    3a-读取/发送两个字节

    3b-seek 2字节数乘以文件中的数据集数(减去一个),再乘以下一组两个字节数(假设文件中有16组数据->seek 30字节)


  • 任何帮助都将不胜感激,谢谢

    我会按照需要读取文件并读取所需数据,处理偏移量和读取块大小。我(可能很差)这样做的尝试比只发送整个(300MB-1GB)文件要慢。我希望有人手边有一些奇特的转换/流/管道代码!我会按照需要读取文件并读取所需数据,处理偏移量和读取块大小。我(可能很差)这样做的尝试比只发送整个(300MB-1GB)文件要慢。我希望有人手边有一些奇特的转换/流/管道代码!