【发布时间】:2021-12-26 07:50:38
【问题描述】:
我正在尝试使用fs.open 和FileHandle 在Node 中逐字节读取二进制文件。使用FileHandle.read(buffer, offset, length, position),我可以:
- 将
position参数留空,在这种情况下,读取的每个数据块都会移动FileHandle的内部位置 - 提供
position参数,在这种情况下内部位置将保持不变
我想从文件中间的特定位置读取一个值(使用带有位置的FileHandle.read),并基于该值,从文件中的另一个点顺序读取一些其他数据(使用@ 987654328@ 没有位置)。
第一部分很简单。对于第二部分,我知道我可以:
- 维护一个自定义位置变量并将其提供给每个
read调用 - 从文件中读取一定量的数据只是为了改变内部位置
第一个解决方案是可行的,但有点麻烦,因为该数据的结构相当复杂。第二种解决方案实际上并不可行,因为文件变得相当大,并且逐字节读取文件的重点是不要将其内容的大块读取到内存中。
我还可以在FileHandle 上构建自己的抽象,它会保持自己的内部位置并允许我对其进行更改,但如果可以的话,我宁愿避免这样做。
有没有一种方法可以让我跳过FileHandle 中任意数量的字节,或者手动设置其内部位置?
【问题讨论】:
标签: javascript node.js fs