美文网首页
【翻译】Node.js 教程 —— 写入流

【翻译】Node.js 教程 —— 写入流

作者: kyuan | 来源:发表于2018-12-10 23:26 被阅读10次

上节课讲了如何利用读取流读取数据。可视化的理解如下:


数据一点一点的从通道过来,填充到 Buffer 里,当 Buffer 填满的时候,会将这部分数据返回给给我们,通过 data 监听数据返回并输出到控制台中。

不过我们更常做的是将数据发回给客户端(浏览器)或创建新文件,这节课将会创建写入流并将数据放入其中发送到某处。

基于上节课读取流的代码

  • 创建写入流,第一个参数是往哪个位置写入数据
  • 在数据返回时通过写入流写入数据
'app.js'
var fs = require('fs');

var readStream = fs.createReadStream(__dirname + '/readme.txt', 'utf-8');
var writeStream = fs.createWriteStream(__dirname + '/writeme.txt'); // 创建写入流

readStream.on('data', function(chunk){
    writeStream.write(chunk); // 写入数据
});

执行 app.js,你会发现目录上多出一个 write.txt 的文件

node app

假如你对比之前讲过的 readFilewriteFile 方法,的方式分割文件的数据,通过每次一小部分数据填充到 Buffer 并在 Stream 中返回给我们,无需等待所有数据完全加载到内存中,因此流的方式效率会更高。

实际上这种读写流操作很常用,有一种比上方代码更快的处理数据读写的方式,叫做管道,下节课将讨论。

相关文章

网友评论

      本文标题:【翻译】Node.js 教程 —— 写入流

      本文链接:https://www.haomeiwen.com/subject/eperhqtx.html