美文网首页
fs-模块fs.createReadStream创建可读流

fs-模块fs.createReadStream创建可读流

作者: 静昕妈妈芦培培 | 来源:发表于2021-02-24 11:21 被阅读0次

例1:创建可读流,并读取其中的是数据

const fs = require('fs')

//创建可读流,设置读取范围和一次读取多少个字节
const reader = fs.createReadStream('baz.txt',{
    start:3,
    end:11,
    highWaterMark: 3
})
console.log('文件未打开', reader.pending)
//想要读取到可读流的数据,需要监听data事件
reader.on('data', (data) => {
    console.log(data)
    console.log('到目前为止已读取%d个字节', reader.bytesRead)
    //暂停读取
    reader.pause()

    //设置过2秒钟读取一次数据
    setTimeout(() => {
        //恢复读取
        reader.resume()
    }, 2000)
})
reader.on('open', () => {
    console.log('文件已打开', reader.pending)
})
reader.on('ready', () => {
    console.log('数据已准备好读取', reader.pending)
})
reader.on('close', () => {
    console.log('数据已读完')
    console.log('读取的文件路径为:' + reader.path)
})

执行结果:


image.png

例2:如果指定了 fd,则 ReadStream 会忽略 path 参数,并且会使用指定的文件描述符。

const fs = require('fs')


const fd = fs.openSync('foo.txt')

//创建可读流,设置读取范围和一次读取多少个字节

const reader = fs.createReadStream('baz.txt',{
    fd: fd,//如果指定了 fd,则 ReadStream 会忽略 path 参数,并且会使用指定的文件描述符。
    start:3,
    end:11,
    highWaterMark: 3
})

console.log('文件未打开', reader.pending)
//想要读取到可读流的数据,需要监听data事件
reader.on('data', (data) => {
    console.log(data)
    console.log('到目前为止已读取%d个字节', reader.bytesRead)
    //暂停读取
    reader.pause()

    //设置过2秒钟读取一次数据
    setTimeout(() => {
        //恢复读取
        reader.resume()
    }, 2000)
})
reader.on('open', () => {
    console.log('文件已打开', reader.pending)
})
reader.on('ready', () => {
    console.log('数据已准备好读取', reader.pending)
})
reader.on('close', () => {
    console.log('数据已读完')
    console.log('读取的文件路径为:' + reader.path)
})

执行结果:


image.png

相关文章

  • fs-模块fs.createReadStream创建可读流

    例1:创建可读流,并读取其中的是数据 执行结果: 例2:如果指定了 fd,则 ReadStream 会忽略 pat...

  • 三、Node.js Stream(流)

    // 创建可读流var readerStream = fs.createReadStream('input.txt...

  • Node Native (2) stream

    流的分类 Readable- 可读的流 (例如 fs.createReadStream()). Writable ...

  • Node.js 流

    Readable - 可读的流 (例如 fs.createReadStream()).Writable - 可写的...

  • Node流Stream

    fs模块就是基于stream的 可读流 自己实现一个readstream 有on方法,基于events事件 流一创...

  • node之readline(逐行读取)

    require('readline') 模块提供了一个接口,用于从可读流(如 process.stdin)读取数据...

  • Node进阶 ---- Stream(四)

    1. 通过流读取数据 用Readable创建对象readable后,便得到了一个可读流。 如果实现_read方法,...

  • Node.js核心模块readline

    Node.js中文网的 v6.10.3 文档提供了readline模块,可以从可读流(process.stdin)...

  • 谈谈node中流的理解

    node中Stream分为Readable(可读流)、Writable(可写流)、Duplex(可读写流)、Tra...

  • Java Stream

    概述 一个流 不易出错 简化代码 可读性 & 可维护性 提升 不会影响之前的数据 创建流 Collection.s...

网友评论

      本文标题:fs-模块fs.createReadStream创建可读流

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