美文网首页
Stream.Writable可写流类

Stream.Writable可写流类

作者: 静昕妈妈芦培培 | 来源:发表于2021-02-26 12:29 被阅读0次

例:

const fs = require('fs')

//创建可读流
const reader = fs.createReadStream('a.txt')


//创建可写流,设置开始写入的字节和写入的方式
// 若要把数据追加到原数据的末尾,设置flags为a,此时设置start无效
const writer = fs.createWriteStream('foo.txt', {
    flags: 'a',
})



//如果调用 stream.write(chunk) 返回 false,则当可以继续写入数据到流时会触发 'drain' 事件。
writer.once('drain', () => {
    console.log('触发了drain事件')
})

//监听error事件
writer.on('drain', (err) => {
    console.error(err)
})

//调用 stream.end() 且缓冲数据都已传给底层系统之后触发。
//也就是说,输入数据完成并关闭了可写流触发
writer.on('finish', () => {
    console.log('数据写入完成')
})
//监听文件关闭时间
writer.on('close', () => {
    console.log('可写流已被关闭,不能再写入数据')
})

//当在可读流上调用 stream.pipe() 方法时会发出 'pipe' 事件,并将此可写流添加到其目标集。
writer.on('pipe', (src) => {
    console.log('有数据正通过管道流入写入器');
})


//在可读流上调用 stream.unpipe() 方法时会发出 'unpipe'事件,从其目标集中移除此可写流。
// 当可读流通过管道流向可写流发生错误时,也会触发此事件。
writer.on('unpipe', () => {
    console.log('已移除可写流管道');
})


reader.pipe(writer)
reader.unpipe(writer)

writer.write('你好')
writer.end(',今天学nodejs了么')

执行结果:


image.png

相关文章

网友评论

      本文标题:Stream.Writable可写流类

      本文链接:https://www.haomeiwen.com/subject/ekudfltx.html