Node的stream数据流你了解吗

Node的stream数据流你了解吗

目录

一、Node的数据流(stream)

1、处理缓存的方式

2、四种类型的流

3、zlib模块:用于文件的压缩与解压缩

(1)压缩方法:zlib.createGzip()

(2)解压缩方法:zlib.createGunzip()

总结

一、Node的数据流(stream) 1、处理缓存的方式

(1)一次性全部读取,然后再进行处理。缺点是大文件处理非常耗时,优点是过程直观

(2)读取一块处理一块.优点是提高程序的性能

2、四种类型的流

Readable - 其是用于读操作

Writable - 用在写操作

Duplex - 其可以用于读取和写入操作

Transform - 输出基于输入的地方进行计算的一种双相流

每种流都是事件触发器,当某个流被调用时,就会触发,抛出一个事件:

'data'事件:表示流中有数据可以读取

'end'事件:表示流中没有数据可以读取

'error'事件:读写数据错误时触发

'finish'事件:数据刷新到底层系统时触发

const fs = require('fs'); let str_data = ''; //创建读数据的流 let readerStream = fs.createReadStream('./test.txt'); //设置流的编码格式 readerStream.setEncoding('utf8'); //给流绑定事件 readerStream.on('data',function (chunk) { str_data += chunk }) readerStream.on('end',function (){ console.log("读取的数据是:",str_data) }) readerStream.on('error',function (err){ console.log(err.stack) }) console.log('-----End-----') // 读取的数据是: 离离原上草, // 一岁一枯荣; // 野火烧不尽, // 春风吹又生。 const fs = require('fs'); //创建一个读数据的流 let readerStream = fs.createReadStream('./test.txt') //创建一个写数据的流 let writerStream = fs.createWriteStream('./out.txt') //创建管道流 readerStream.pipe(writerStream) console.log('----End----') //可以完成复制,将test文件中的内容复制到out文件中 3、zlib模块:用于文件的压缩与解压缩 (1)压缩方法:zlib.createGzip() const fs = require('fs'); const zlib = require('zlib'); //创建一个读数据的流 let readerStream = fs.createReadStream('./test.txt') .pipe(zlib.createGzip()) .pipe(fs.createWriteStream('./text.zip')) readerStream.on('error',function (err) { console.log(err.stack) }) console.log('----End----') //创建一个名为text.zip的压缩包 (2)解压缩方法:zlib.createGunzip() const fs = require('fs'); const zlib = require('zlib'); fs.createReadStream('./test.zip') .pipe(zlib.createGunzip()) .pipe(fs.createWriteStream('./db.txt')) //解压名为test.zip的压缩包,并将其中的内容复制到db.txt当中 总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注易知道(ezd.cc)的更多内容!       

推荐阅读

    node 服务器端启动

    node 服务器端启动,远程桌面,设置为,场景: 根据资料学习,制作了一个web聊天室的应用,部署在windows服务器上,运行正常,当关闭远程桌面,运营node

    创业做网站选择用node好还是php

    创业做网站选择用node好还是php,语言,页面,如果你所开发的是一个PHP网站的前端页面或模板,PHP和Python语言都相对比较简单,所以虽然PHP语

    1-14node中的commonjs规范的实现

    1-14node中的commonjs规范的实现,模块,文件,node中的模块 1.内置模块、核心模块 2.第三方模块 commander/co 3.文件模块es6Module“静态”

    node express返回json数据给前端

    node express返回json数据给前端,上传,格式,请注意,使用res.json()的格式1.前面不能添加 res.writeHead(200, {‘content-type‘: ‘text/

    nodejs如何升级到最新稳定版本

    nodejs如何升级到最新稳定版本,版本,安装,命令,最新,升级,最新版本,Node.js是一种开源的、跨平台的JavaScript运行环境,它使用了Google V8引擎来

    一文带你深入了解Node.js(图文详解)

    一文带你深入了解Node.js(图文详解),模块,中间件,路由,描述,插入图片,服务器,本篇文章通过超多代码和图解来带大家深入解析Node.js,主要内容包括模

    怎么删除nodejs

    怎么删除nodejs,删除,卸载,选择,鼠标,教程,文件,删除nodejs的方法:1、打开“控制面板”,点击“卸载程序”;2、在“卸载或更改程序”界面,找到并选中

    nodejs怎么查看版本(三种方法)

    nodejs怎么查看版本(三种方法),版本,版本信息,查看,方法,命令行,系统,Node.js 是一个非常流行的开源 JavaScript 运行时环境,它可以运行在多个平台

    nodejs怎么安装?详细步骤介绍

    nodejs怎么安装?详细步骤介绍,安装,模块,输入,命令,系统,版本,随着互联网的不断发展,越来越多的前端开发者开始学习 Node.js。Node.js 它是一个基

    nodejs如何更新(4种方法)

    nodejs如何更新(4种方法),更新,安装,版本,命令,安装程序,命令行,Node.js是一个开放源代码的跨平台JavaScript运行环境,它在不同的平台上都得到了广

    详解Node怎么卸载?【步骤分享】

    详解Node怎么卸载?【步骤分享】,删除,文件,卸载,环境变量,查看,系统,Node怎么卸载?下面本篇文章给大家分享Node卸载超详细步骤,跟着本文一步步卸载

    [Curator] Node Cache 的使用与分析

    [Curator] Node Cache 的使用与分析,缓存,节点,Node Cache 使用节点数据作为本地缓存使用。这个类可以对节点进行监听,能够处理节点的增删