小编Mic*_*cki的帖子

Node.js同时读取和写入同一文件的流

TL; DR

我翻阅了一些关于解决方案npmgithub寻找的东西,让我来read,并write在同一时间在两个不同的地方相同的文件.到目前为止,我实际上找不到这样的东西.是否有某种类型的模块允许这样做?

背景

本质上我的要求是在一个大文件中我需要按以下顺序:

  • 转变

理想情况下,用法如下:

const fd = fs.open(file, "r+");
const read = createReadStreamSomehowFrom(fd);
const write = createWriteStreamSomehowFrom(fd);

read
   .pipe(new Transform(transform() {...}))
   .pipe(write);
Run Code Online (Sandbox Code Playgroud)

我可以用标准来做到这一点fs.create[Read/Write]Stream但是没有办法控制两个流的流量,如果我的写入位置超出读取位置那么我正在阅读我刚才写的东西......

用例与perl -p -i -e异步读取和写入同一文件(意思是相同的inode)相同,并替换内容而不将所有内容加载到内存中.

我希望这是一个真实世界的用例,但我发现的所有实现实际上都将整个文件加载到内存中然后保存它.我在这里错过了一个已知的模块,还是需要实际写这样的东西?

file file-descriptor stream fs node.js

5
推荐指数
1
解决办法
1261
查看次数

标签 统计

file ×1

file-descriptor ×1

fs ×1

node.js ×1

stream ×1