stream 流:将数据的传输看作是水流,分段传输,能更好的管制,提高效率。
所有的 Stream 对象都是 EventEmitter 的实例
分类:包含了读,写,边读边写等数据流。
eg:fs 的文件读写等 api; 用读文件的数据流据举例子:
// 自主定义读文件的流
let freadStream = fs.createReadStream('./test.txt',{
// 每次读取字节数
highWaterMark:3,
// 读取模式
flags:'r', // 默认 'r'
autoClose:true, // 默认读取结束后主动敞开
start:0, // 读取文件开始地位
// end:3, // 流是闭合区间 蕴含 start 也含 end
encoding:'utf8' // 默认 null
})
// 下面创立了一个读取 test.data 的数据流,当初让他运行起来
freadStream.on('open',()=>{console.log('流开始关上文件');
})
freadStream.on('data',(e)=>{console.log('继续有数据被读取进去:',e);
})
freadStream.on('end',()=>{console.log("数据读取实现,没有流了");
})```