我在node的fs模块中有一个关于readstream的简单问题。
下面是简单的代码:

fs = require('fs');
readStream = fs.createReadStream('somefile.d');
 readStream.on('data', function(chunk) {
 console.log(chunk.toString());
});

“somefile.d”是:
a1
a2
a3
a4

问题:
为什么在输出的末尾有一个额外的换行符?我试过一个od-c来得到一个八进制转储,是的,还有一个额外的换行符。是托斯特林放的吗?
更重要的是,为什么块由换行符分隔?每行都会触发数据事件。我没有指定任何选项,也没有读取由任何特定字符分隔的块的选项。例如,我知道有carrier模块可以解决这个问题。
如有任何解释将不胜感激。
~
~
~

最佳答案

我不确定我是否完全理解,但如果你说的是程序的实际输出,就像你写的那样,你的唯一输出似乎来自console.logconsole.log以行尾结束其写操作。如果要在没有行结束符的情况下写入stdout,可以执行以下操作:
process.stdout.write(chunk)
应该按原样送出去。如果您想:
readStream.pipe(process.stdout);

07-22 08:23