TL; DR
我翻阅了一些关于解决方案npm
和github
寻找的东西,让我来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)相同,并替换内容而不将所有内容加载到内存中.
我希望这是一个真实世界的用例,但我发现的所有实现实际上都将整个文件加载到内存中然后保存它.我在这里错过了一个已知的模块,还是需要实际写这样的东西?