node.js 利用流实现读写同步,边读边写的方法

发布时间 - 2026-01-11 03:11:24    点击率:

如下所示:

//10个数 10个字节,每次读4b,写1b
let fs=require("fs");
function pipe(source,target) {
  //先创建可读流,再创建可写流
  //先读一次,rs.on(data)
  //将读到的类容写入目标中 ,返回布尔值,如果是ture,继续写,默认情况应该是false,暂停读取
  //ws.on('drain'),抽干后,回复读取
  //监听读取文件完毕后,关闭读取rs.on('end')

  let rs=fs.createReadStream(source,{highWaterMark:4});
  let ws=fs.createWriteStream(target,{highWaterMark:1});

  rs.on('data',function (chunk) { //chunk是buffer类型

    if(ws.write(chunk)===false){
      //写不下,停止读取
      rs.pause()
    }

  });
  ws.on('drain',function () {
    //每次写的内存干了就恢复读取
    console.log("111");
    rs.resume() //恢复读取
  });
  rs.on('end',function (chunk) {
    ws.end();
  })

}
pipe('./1.txt','./3.txt')

上面这种写法比较繁琐,大家看完后,忘记就行

node.js提供给我们内置方法pipe

//10个数 10个字节,每次读4b,写1b
let fs=require("fs");
function pipe(source,target) {

  let rs=fs.createReadStream(source,{highWaterMark:4});
  let ws=fs.createWriteStream(target,{highWaterMark:1});
  //可读流到可写流,异步操作,可以保证内存不会被淹没,读一点,写一点
  // 如果想看文件类容,使用readFile

  rs.pipe(ws);
}
pipe('./1.txt','./4.txt')

直接将读取的流操作到写入流中,还是异步操作

以上这篇node.js 利用流实现读写同步,边读边写的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# node.js  # 流实现读写同步  # node.js基于fs模块对系统文件及目录进行读写操作的方法详解  # Node.js 使用流实现读写同步边读边写功能  # 基于node.js的fs核心模块读写文件操作(实例讲解)  # Node.js Sequelize如何实现数据库的读写分离  # Node.js的文件权限及读写flag详解  # Node.js读写文件之批量替换图片的实现方法  # Node.js Streams文件读写操作详解  # 在Node.js应用中读写Redis数据库的简单方法  # 详解Node.js读写中文内容文件操作  # 给大家  # 给我们  # 就行  # 希望能  # 看完  # 想看  # 所示  # 这篇  # 干了  # 小编  # 读到  # 大家多多  # 流到  # 续写  # 应该是  # 完毕后  # 布尔值  # function  # pipe  # require 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何确保FTP站点访问权限与数据传输安全?  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  用v-html解决Vue.js渲染中html标签不被解析的问题  Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程  如何快速完成中国万网建站详细流程?  郑州企业网站制作公司,郑州招聘网站有哪些?  活动邀请函制作网站有哪些,活动邀请函文案?  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  教你用AI将一段旋律扩展成一首完整的曲子  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南  如何在云指建站中生成FTP站点?  Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】  Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】  Laravel如何使用查询构建器?(Query Builder高级用法)  Laravel如何创建自定义Artisan命令?(代码示例)  北京网站制作的公司有哪些,北京白云观官方网站?  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】  如何在IIS管理器中快速创建并配置网站?  如何快速查询网址的建站时间与历史轨迹?  Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践  如何在香港服务器上快速搭建免备案网站?  成都网站制作公司哪家好,四川省职工服务网是做什么用?  php485函数参数是什么意思_php485各参数详细说明【介绍】  Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧  简历没回改:利用AI润色让你的文字更专业  googleplay官方入口在哪里_Google Play官方商店快速入口指南  为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  ,怎么在广州志愿者网站注册?  Laravel用户密码怎么加密_Laravel Hash门面使用教程  Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程  Laravel怎么生成URL_Laravel路由命名与URL生成函数详解  python中快速进行多个字符替换的方法小结  js代码实现下拉菜单【推荐】  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  如何挑选高效建站主机与优质域名?  如何基于PHP生成高效IDC网络公司建站源码?  Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】  javascript基于原型链的继承及call和apply函数用法分析  Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】  如何安全更换建站之星模板并保留数据?  如何做网站制作流程,*游戏网站怎么搭建?  Laravel如何使用Collections进行数据处理?(实用方法示例)  微信小程序制作网站有哪些,微信小程序需要做网站吗?