当前位置: 首页 > news >正文

【Node.js】stream 流模块

流是一种抽象的数据结构。从键盘输入到应用程序就是标准输入流(stdin)。应用程序把字符一个一个输出到显示器上叫做:标准输出流(stdout)。

流的特点是数据是有序的,而且必须依次读取,或者依次写入,不能像Array那样随机定位。

在 Node.js 中,流也是一个对象,我们只需要响应流的事件就可以了:data事件表示流的数据已经可以读取了,end事件表示这个流已经到末尾了,没有数据可以读取了,error事件表示出错了。

const fs = require('fs');// 打开一个流:
const rs = fs.createReadStream('./avatar/1.txt', 'utf-8');// `data`事件可能会有多次,每次传递的`chunk`是流的一部分数据。
// rs.on('data', function (chunk) {
//   console.log('DATA:')
//   console.log(chunk);  // 我是 1.txt 里面的内容
// });// rs.on('end', function () {
//   console.log('END');
// });// rs.on('error', function (err) {
//   console.log('ERROR: ' + err);
// });// 写入(覆盖写入)文件
const ws1 = fs.createWriteStream('./avatar/1.txt', 'utf-8');
ws1.write('使用Stream写入文本数据...\n');
ws1.write('END.');
ws1.end();

一个Readable流和一个Writable流串起来后,所有的数据自动从Readable流进入Writable流,这种操作叫pipepipe()把一个文件流和另一个文件流串起来,这样源文件的所有数据就自动写入到目标文件里了。

const fs = require('fs');
// 以下操作将 1.txt 的内容写入 2.txt
const readstream = fs.createReadStream('./avatar/1.txt')
const writestream = fs.createWriteStream('./avatar/2.txt')
readstream.pipe(writestream)
http://www.lryc.cn/news/187814.html

相关文章:

  • 【LeetCode】——链式二叉树经典OJ题详解
  • 代码注释对于程序员重要吗?
  • OpenHamony开发笔记一:在HarmonyOS虚拟机上运行openharmony工程
  • C++程序员入门需要怎么学?(InsCode AI 创作助手)
  • Intel 高性能库之IPP信号处理简介及下载(版本5.1,含32位和64位及注册)
  • 【C++】运算符重载案例 - 字符串类 ② ( 重载 等号 = 运算符 | 重载 数组下标 [] 操作符 | 完整代码示例 )
  • Vue脚手架开发流程
  • 从零开始学习线性回归:理论、实践与PyTorch实现
  • [LeetCode]链式二叉树相关题目(c语言实现)
  • 集成学习
  • 算法练习11——买卖股票的最佳时机 II
  • linux——多线程,线程控制
  • Oracle 简介与 Docker Compose部署
  • mp4音视频分离技术
  • JVM 参数
  • 黑马点评-07缓存击穿问题(热点key失效)及解决方案,互斥锁和设置逻辑过期时间
  • 信息系统项目管理师第四版学习笔记——项目进度管理
  • 指挥棒:C++ 与运算符
  • HTTPS建立连接的过程
  • Python接口自动化搭建过程,含request请求封装!
  • Vue3 编译原理
  • spring boot整合Minio
  • Hadoop----Azkaban的使用与一些报错问题的解决
  • 「新房家装经验」客厅电视高度标准尺寸及客厅电视机买多大尺寸合适?
  • ArduPilot开源飞控之AP_Baro_DroneCAN
  • Supervised Contrastive Pre-training for Mammographic Triage Screening Model
  • JVM技术文档--JVM优化思路以及问题定位--JVM可调整参数汇总
  • Oracle10g数据库迁移方案
  • 备忘录模式:对象状态的保存与恢复
  • C# InvokeRequired线程安全