NodeJS createReadStream是否通过createReadStream从文件中获取第一个块,如果使用readInterface,是否逐行给我? [关闭]

问题描述 投票:-1回答:1
两个问题:1)createReadStream是否通过createReadStream从文件中获取第一个块,然后当我们使用readInterface时是否逐行给我?我的意思是节点从文件和内存中读取第一个块,它是否给“ line”事件行添加行从内存(块)按行?2)由于我的writeStream处于'line'事件中-writeStream是在为每行写入输出文件还是在等待默认大小的块然后写入文件?

var readStream = fs.createReadStream(“ input.txt”);const readInterface = readline.createInterface({输入:readStream,输出:writerStream,控制台:假});

var writerStream = fs.createWriteStream('output.txt'); readInterface.on('line', function(line) { var modifiedline = " modified "; writerStream.write(modifiedline +"\n") });

我是NodeJS的新手,试图理解。
node.js streaming
1个回答
0
投票
1)它是否通过createReadStream从文件中获取第一个块,然后逐行给我?

当您执行createReadStream()时,它将启动异步过程以打开文件。当您附加.on('line'. ...)事件处理程序时,它将从文件中读取一个块,并且当它具有足够的数据来表示一行时,它将为它具有的每一行调用事件处理程序。当它读取的块中的所有行用完时,它会读取另一个块,然后针对缓冲区中的每一行依次调用事件处理程序,重复直到文件结尾。

2),因为我的writeStream处于'line'事件中-writeStream是在为每行写入输出文件还是在等待默认大小的块然后写入文件?

上次,我检查了writeStreams的代码,似乎几乎立即将数据写入文件,而不是对其进行缓冲。如果您想知道写操作何时完成,可以将回调传递给write()方法,它会告诉您写操作何时完成。

© www.soinside.com 2019 - 2024. All rights reserved.