Node.js 可读流的流动模式详解
26 浏览量
更新于2024-09-03
收藏 117KB PDF 举报
"浅谈手写Node可读流之流动模式"
Node可读流是基于事件的流动模式,它可以控制文件的读取过程。可读流有一个"开关",每次当"开关"开启的时候,流动模式起作用,如果将这个"开关"设置成暂停的话,那么,这个可读流将不会去读取文件,直到将这个"开关"重新置为流动。
Node可读流的流程主要包括四个步骤:
1. 打开文件:打开文件成功,将触发open事件,如果打开失败,触发error事件和close事件,将文件关闭。
2. 读取文件内容:开始读取文件中的内容,监听data事件,数据处于流动状态,可通过修改开关的状态来暂停读取。
3. 缓存数据:每次读取到的内容放入缓存中,并通过data事件将数据发布出去。
4. 文件关闭:当文件中的内容读取完毕之后,将文件关闭。
Node可读流的参数主要包括两个:
1. 文件地址:第一个参数是要读取的文件地址,在这里指明你要读取哪个文件。
2. 可选项:第二个参数是可选项,这个参数是一个对象,用来指定可读流的一些具体的参数。
Node可读流的参数中有两个重要的参数:
1. highWaterMark:设置高水位线,这个参数主要用于在读取文件时,可读流会将文件中的内容读取到缓存当中,而这里我们需要创建一个buffer来缓存这些数据,所以这个参数是用来设置buffer的大小,如果不对这个参数进行设置的话,可读流默认的配置64k。
2. flags:这个参数主要用于设置文件的执行模式,比如说我们具体的操作适用于读取文件还是写入文件等这些操作。如果是写入文件的话那我们,使用的是w。如果是读取文件的话那这个操作符就应该是r。
Node可读流的flags参数有多种不同的符号,每个符号都代表不同的含义。
* r:读文件,文件不存在报错
* r+:读取并写入,文件不存在报错
* rs:同步读取文件并忽略缓存
* w:写入文件,不存在则创建,存在则清空
* wx:排它写入文件
* w+:读取并写入文件,不存在则创建,存在则清空
* wx+:和w+类似,排他方式打开
* a:追加写入
* ax:与a类似,排他方式写入
* a+:读取并追加写入,不存在则创建
* ax+:作用与a+类似,排他方式打开
Node可读流的应用非常广泛,例如读取文件、写入文件、追加写入文件等等。通过设置不同的参数和flags,可以实现不同的文件操作。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-01-21 上传
2020-12-10 上传
2021-05-25 上传
2021-10-02 上传
2022-07-14 上传
weixin_38749863
- 粉丝: 3
- 资源: 912
最新资源
- C语言数组操作:高度检查器编程实践
- 基于Swift开发的嘉定单车LBS iOS应用项目解析
- 钗头凤声乐表演的二度创作分析报告
- 分布式数据库特训营全套教程资料
- JavaScript开发者Robert Bindar的博客平台
- MATLAB投影寻踪代码教程及文件解压缩指南
- HTML5拖放实现的RPSLS游戏教程
- HT://Dig引擎接口,Ampoliros开源模块应用
- 全面探测服务器性能与PHP环境的iprober PHP探针v0.024
- 新版提醒应用v2:基于MongoDB的数据存储
- 《我的世界》东方大陆1.12.2材质包深度体验
- Hypercore Promisifier: JavaScript中的回调转换为Promise包装器
- 探索开源项目Artifice:Slyme脚本与技巧游戏
- Matlab机器人学习代码解析与笔记分享
- 查尔默斯大学计算物理作业HP2解析
- GitHub问题管理新工具:GIRA-crx插件介绍