1

有一个文件 'foo.txt' 写有 'koushik'。代码:-

   var fs = require('fs');
   var rr = fs.createReadStream('foo.txt');
   rr.on('readable', function() {
     console.log('readable:', rr.read(1));
   });
   rr.on('end', function() {
     console.log('end');
   });

输出:-

k
o
4

1 回答 1

0

当有可从流中读取的数据时,将发出该readable事件。

read(1)每次触发事件时,您在该事件处理程序中的内容将从当前可用数据中读取一个字节readable

它触发两次,因为 node.js 中的文件处理决定触发它两次。

如果您不使用任何参数,您可能会得到您期望的输出read()

var fs = require('fs');
var rr = fs.createReadStream('foo.txt');
rr.on('readable', function() {
  console.log('readable:', rr.read()); // read all available data
});
rr.on('end', function() {
  console.log('end');
});
于 2019-05-28T19:01:20.743 回答