我在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.log
。console.log
以行尾结束其写操作。如果要在没有行结束符的情况下写入stdout,可以执行以下操作:process.stdout.write(chunk)
应该按原样送出去。如果您想:readStream.pipe(process.stdout);