Node.js 使用流实现读写同步边读边写功能
2017-09-11 08:39
796 查看
废话不多说了,直接给大家贴代码了,具体代码如下所示:
//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实现微信小程序实时聊天功能
- 使用node.js实现简单注册登录功能
- node.js学习笔记——学生信息管理的实现(把功能模块化)使用官方提供的http模块实现
- node.js使用(五):网站访问、搭建服务器及留言功能的实现
- 使用nodejs+express实现简单的文件上传功能
- node.js 利用流实现读写同步,边读边写的方法
- node.js中使用node-schedule实现定时任务实例
- 使用Node.js和Redis实现push服务
- jsData 使用教程(三) 实现增删改功能
- 使用js简单实现登录功能
- 使用js实现贪吃蛇的部分功能
- nginx and node.js配合使用实现域名绑定
- Zero Clipboard js+swf实现的复制功能使用方法
- Node结合Wind.js实现同步编程
- 使用C#实现网络时间同步功能
- 使用Node.js + MongoDB实现一个简单的日志分析系统
- node.js+android(使用HttpURLConnection和HttpClient)实现文件上传
- 使用JS实现倒计时功能(http://www.cnblogs.com/doll-net)
- 使用js实现大小写字母转换功能