博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
node.js 利用流实现读写同步,边读边写
阅读量:5899 次
发布时间:2019-06-19

本文共 1100 字,大约阅读时间需要 3 分钟。

//10个数 10个字节,每次读4b,写1blet 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,写1blet 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')

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

转载于:https://www.cnblogs.com/null11/p/7500705.html

你可能感兴趣的文章
ssh 安装笔记
查看>>
游戏音效下载网站大全
查看>>
实验五
查看>>
3-继承
查看>>
海归千千万 为何再无钱学森
查看>>
vue2.0 仿手机新闻站(六)详情页制作
查看>>
JSP----九大内置对象
查看>>
Java中HashMap详解
查看>>
delphi基本语法
查看>>
沙盒目录介绍
查看>>
260. Single Number III
查看>>
Hadoop生态圈-Kafka的完全分布式部署
查看>>
css的border的solid
查看>>
[MODx] Build a CMP (Custom manager page) using MIGX in MODX 2.3 -- 1
查看>>
jQuery自动完成点击html元素
查看>>
[算法]基于分区最近点算法的二维平面
查看>>
webpack多页应用架构系列(七):开发环境、生产环境傻傻分不清楚?
查看>>
笨办法学C 练习1:启用编译器
查看>>
树的总结--树的性质(树的深度) leetcode
查看>>
nagios短信报警(飞信fetion20080522004-linrh4)
查看>>