Node.js 使用流实现读写同步边读边写功能
发布时间 - 2026-01-11 03:11:22 点击率:次废话不多说了,直接给大家贴代码了,具体代码如下所示:
//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读写中文内容文件操作
# 给大家
# 小编
# 在此
# 说了
# 不多
# 给我们
# 就行
# 看完
# 想看
# 所示
# 干了
# 所述
# 读到
# 给我留言
# 感谢大家
# 流到
# 续写
# 应该是
# 疑问请
# 有任何
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
EditPlus 正则表达式 实战(3)
深入理解Android中的xmlns:tools属性
Laravel storage目录权限问题_Laravel文件写入权限设置
详解Android中Activity的四大启动模式实验简述
Laravel如何使用Passport实现OAuth2?(完整配置步骤)
如何在云指建站中生成FTP站点?
魔毅自助建站系统:模板定制与SEO优化一键生成指南
如何用PHP快速搭建CMS系统?
Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理
如何快速配置高效服务器建站软件?
Firefox Developer Edition开发者版本入口
Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧
lovemo网页版地址 lovemo官网手机登录
如何获取上海专业网站定制建站电话?
如何快速查询域名建站关键信息?
Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧
如何在宝塔面板中修改默认建站目录?
如何制作一个表白网站视频,关于勇敢表白的小标题?
中国移动官方网站首页入口 中国移动官网网页登录
如何快速搭建二级域名独立网站?
Python图片处理进阶教程_Pillow滤镜与图像增强
如何在宝塔面板创建新站点?
Laravel如何实现一对一模型关联?(Eloquent示例)
个人摄影网站制作流程,摄影爱好者都去什么网站?
iOS UIView常见属性方法小结
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
免费视频制作网站,更新又快又好的免费电影网站?
百度浏览器如何管理插件 百度浏览器插件管理方法
网站页面设计需要考虑到这些问题
Python进程池调度策略_任务分发说明【指导】
Laravel如何使用.env文件管理环境变量?(最佳实践)
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集
DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解
高性能网站服务器部署指南:稳定运行与安全配置优化方案
安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出
Laravel如何实现密码重置功能_Laravel密码找回与重置流程
香港服务器租用每月最低只需15元?
如何在Windows虚拟主机上快速搭建网站?
使用C语言编写圣诞表白程序
JavaScript如何实现错误处理_try...catch如何捕获异常?
🚀拖拽式CMS建站能否实现高效与个性化并存?
android nfc常用标签读取总结
zabbix利用python脚本发送报警邮件的方法
如何用免费手机建站系统零基础打造专业网站?
如何在 Pandas 中基于一列条件计算另一列的分组均值
Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控
如何用已有域名快速搭建网站?
Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程
香港服务器如何优化才能显著提升网站加载速度?
下一篇:飞书音频权限打不开怎么办
下一篇:飞书音频权限打不开怎么办

