Node.js同时读取流并将其写入同一文件

MichałKapracki

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);

我可以使用standard来做到这一点,fs.create[Read/Write]Stream但是无法控制两个流的流,如果我的写位置超出了读位置,那么我正在读我刚刚写的东西...

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

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

MichałKapracki

嗯...看起来很艰难。:)

因此,出于记录目的-我没有找到这样的模块,实际上与负责文件内替换模块的一些人进行了讨论。看不到解决方法,我决定从头开始编写,这里是:

该模块的工作原理很简单:在可读流中将其消耗掉之前,无法写入任何字节,并且其底层非常简单(将fs.read/write操作并列在读写点上)。

如果您觉得这有用,那么我很高兴。:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

是否有一种更优雅的方式来读取然后使用node js流写入*同一文件*

Node.js转换文件流并写入同一文件,结果为空文件

node.js在同一文件夹中找不到模块

在node.js的同一文件中获取函数的变量

Node.js 按钮链接到同一文件夹中的页面

Node.js npm 没有运行我想要的文件,而是在同一文件夹中运行另一个文件

在Java中同时读取和写入同一文件

使用C ++同时读取和写入同一文件

从 PowerShell 中的 Invoke-RestMethod 同时读取和写入同一文件

node.js 可以請求 php 文件作為它在同一文件系統上的端點,而不是 http 請求嗎?

读取和写入同一文件fstream

如何将两个node.js链码放在同一文件夹中

如何将两个txt文件中的数字相加并将其写入同一文件?

每个带有multer和shortid的上传的Node.js唯一文件夹

在Node JS中读取Windows-1252文件

如何在仍写入同一文件的同时过滤掉特定行?

如何遍历数组并将每次迭代写入同一文件[nodejs]

线程1从文件读取,而线程2写入同一文件

使用同一对象写入宽字符,并将字符写入同一文件

多个Java进程可以同时读取同一文件吗?

读取和写入同一文件-输出格式更改

在Java中读取和写入同一文件

从Excel模板读取数据并写入同一文件

如何使用spark(scala)读取和写入(更新)同一文件

如何异步写入和读取节点中的同一文件?

使用try-with-resources读取和写入同一文件

同时下载同一文件多次

foreach%dopar%写入同一文件

从文件读取后写回同一文件