Stream-readable

2021-03-04  本文已影响0人  静昕妈妈芦培培

例:比较fs.readFile和可读流的读取方式

const fs = require('fs')

//传统的读取方式:一次性读取文件的全部内容。
fs.readFile('./foo.txt',(err, data) => {
    console.log(data)
})

//通过流的方式读取:可以更精准的控制从哪个位置开始读取,读取到哪个位置停止,一次读取多少个字节
//1.创建可读流:fs.ReadStream 类的对象,继承自: <stream.Readable>
const reader = fs.createReadStream('./foo.txt', {
    start: 3, //从第几个字节开始读取
    end: 10, //读取到第几个字节停止
    highWaterMark: 2, //一次读取几个字节
})

//2.读取可读流中的内容
reader.on('data', (chunk) => {
    //如果使用 readable.setEncoding() 为流指定了默认的字符编码,则监听器回调传入的数据为字符串,否则传入的数据为 Buffer。
    console.log(chunk)
})

reader.on('open', () => {
    console.log('文件已打开')
})
reader.on('ready', () => {
    console.log('文件已准备好使用')
})

reader.on('close', () => {
    console.log('文件已关闭')
})

执行结果:


image.png
上一篇 下一篇

猜你喜欢

热点阅读