首先,我用我的代码逐行读入一个文件。(大约1650行)
第二,我把文件的每一行都重组成许多行。
第三,我想把输出写在一个新的文件中。不幸的是,它没有写所有的超过16800行。输出变化约15500行。
对于第三我使用以下代码:
var inputArr; //Splited Input of one line
var Text; //inputArr transformed to a String with many lines (per start line)
var lineCounter = 0; //counts the expacted number of output lines
const fs = require('fs');
const writeStream = fs.createWriteStream('./output.txt');
for(var i=0; i<= inputArr.length; i++) {
writeStream.write(Text);
lineCounter = lineCounter + 1;
}
writeStream.end();
要把所有行都写入输出文件,我该怎么做?
2条答案
按热度按时间wgmfuz8q1#
要把所有行都写入输出文件,我该怎么做?
如果不检测流何时已满,然后等待它说可以再次写入,就无法写入大量数据。在stream.writable doc中有一个非常详细的示例说明如何做到这一点。
下面是该文档的摘录,说明了如何做到这一点:
基本上,您必须注意
stream.write()
的返回值,当它显示流已满时,您必须重新开始对drain
事件进行写入。读和写的时候你不会显示整个代码,如果你只是读一个流,修改它,然后把结果写到一个不同的文件,你可能应该使用管道,或者使用一个转换,然后流会自动处理所有的读,写和反压检测。
你可以在这里读到转换流,因为这听起来可能是你真正想要的。然后你可以将转换流的输出通过管道传输到你的输出流文件,所有的反压力都将自动为你处理。
5gfr0r5j2#
如何使用
write