node.js readSync和stream返回不同的结果

时间:2018-03-06 07:43:42

标签: javascript node.js stream readfile

我想用stream读取文件来更新UI进度条。但在我开始尝试fs.createReadStream之后,我注意到我收到了不同的结果。例如:

var d = fs.readFileSync('file.bin', null);
console.log(d);
console.log(d.byteLength);

在控制台中返回:

  

缓冲区(188000)

     

188000

但是这段代码:

var rd = fs.createReadStream('file.bin');
var data = '';
rd.on("error", function(err) {
    console.log(err);
});
rd.on("data", function(chunk) {
    console.log(chunk.length);
    data += chunk;
});
rd.on("end", function() {
    console.log('There will be no more data.');
    var buf = Buffer.from(data, null);
    console.log(buf)
    console.log(buf.byteLength)
});

在控制台中返回:

  

Uint8Array(297684)

     

297684

为什么流返回Uint8Array而不是Buffer对象以及为什么它们具有不同的大小

0 个答案:

没有答案