分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

node.js(三 ?????stream ?管道流 ??模块化 ???函数)

发布时间:2023-09-06 02:25责任编辑:彭小芳关键词:js

一、stream  

  stream是一个抽象的接口,node中有很多对象实现了这个接口。

  stream有四种流类型: Readable: 可读操作;  Writable: 可写操作;  Duplex: 可读可写操作;  Transform:  操作被写入数据,然后都出结果;

  所有的stream对象独有EventsEmitter的实例,常用的事件有:  

      data: 当有数据可读时触发;

      end:  没有更多的数据可读时触发;

      error:  在接收和写入过程中发生错误时触发;

      finish:  所有数据已被写入到底层系统时触发;

  1、从流中读取数据

   例如: var  fs = require(‘fs‘);

       var data = ‘‘;

      var readerStream = fs.createReadStream(‘demo.txt‘);    //创建可读的流

      //开始执行读取的事件

      readerStream.on(‘data‘,  function(chunk){

        data += chunk;

      })

      readerSteam.on(‘end‘,   function(){

        console.log(data)

      })

      readerStream.on(‘error‘,  function(err){

        console.log(err.stack)

      })

      

  2、写入流

    例如: 

      var fs = require(‘fs‘);

      var  data = ‘要写入的内容‘; 

      var writerStream = fs.creamWriteStream(‘demo.txt‘);       //写入demo.txt 文档内

      writeStream.write(‘data‘,  ‘UTF8‘);    //使用utf-8格式写入数据;

      writeStream.end();     //标记文件末尾;

      writeStream.on(‘finish‘,   function(){

         console.log(‘写入完成‘);

      })

      writeStream.on(‘error‘,  function(){

        console.log(err.stack);

      })

      

  3、管道流

  管道提供了一个从输出流到输入流的机制; 通常用于从一个流中回去数据,然后传递到另一个流中。

  例如; 

    var fs = require(‘fs‘);

    var readerStream = fs.creamReadStream(‘demo1.txt‘);

    var writeSteam = fs.creamWriteStream(‘demo2.text‘);

    readerStream.pip( writeStream);

  4、链式流

  链式是通过连接输出流到另一个流并创建多个流操作链的机制。链式流一般用于管道操作。

  例如: 

    var fs =  require(‘fs‘);

    var zlib = require(‘fs‘);

    var readerStream = fs.createReadStream(‘demo1.txt‘);

    readerStream.pip(zlib.createGzip())     //将文件进行压缩demo.txt.gz

          .pip(fs.createWriteStream(‘demo1.txt.gz‘))

    fs.createReadStream(‘demo1.txt.gz‘).pip(zlib.createGunzio())   //将压缩文件进行解压

          .pip(fs.createWriteStream(demo.txt))    

node.js(三 ?????stream ?管道流 ??模块化 ???函数)

原文地址:https://www.cnblogs.com/mufc/p/10078348.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved