Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript CreateReadStream在块中创建额外的换行分隔符?_Javascript_Node.js - Fatal编程技术网

Javascript CreateReadStream在块中创建额外的换行分隔符?

Javascript CreateReadStream在块中创建额外的换行分隔符?,javascript,node.js,Javascript,Node.js,我有一个关于节点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来获得

我有一个关于节点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来获得一个八进制转储,是的,有一个额外的换行符。那是toString放的吗? 更重要的是,为什么块由换行符分隔?每行都会触发数据事件。我没有指定任何选项,也没有读取由任何特定字符分隔的数据块的选项。例如,我知道有一个模块可以解决这个问题

如有任何解释,将不胜感激

~
~

~

我不确定我是否完全理解,但是如果你说的是程序的实际输出,就像你写的那样,看起来你唯一的输出来自
控制台.log
console.log
以行尾结束写入。如果要在不使用行终止符的情况下写入标准输出,可以执行以下操作:

process.stdout.write(块)

应该按原样发送。如果您想:


readStream.pipe(process.stdout)

完全解释了第一部分。我接受你的答案,因为我错过了关于console.log在结尾处发出换行符的简单要点。但这并不能解释为什么读块,一次读一行,我的意思是用换行符分隔。在节点的流模块中并没有这样的块定义,也并没有指定不同的分隔符。在这种情况下,我理解我在查询中链接到的“承运人”模块的效用。如果您能解释一下,我也会很感激的……不,恐怕这个块是一些字节数,不是分隔的。我没有其他解释了,谢谢。我认为,如果没有指定大小,它会分块,直到看到换行符。我猜。。。