Node.js Stream(流)
2016-06-26 21:34
357 查看
学习要点:
从流中读取数据
写入流
管道流
链式流
Node.js Stream(流)
从流中读取数据
案例:main.js
写入流
案例:main2.js
管道流
将一个流中的数据输入到另一个流中
案例:pipe.js
链式流
就是将多个输入输出流连接起来
案例:压缩文件 express.js
案例:解压文件 decompress.js
从流中读取数据
写入流
管道流
链式流
Node.js Stream(流)
从流中读取数据
案例:main.js
var fs = require('fs'); var data = ''; // 创建可读流 var readerStream = fs.createReadStream('input.txt'); // 设置utf8编码 readerStream.setEncoding('UTF8'); // 处理流事件 // data 当有数据可读时触发 readerStream.on('data', function (chunk) { data += chunk; }); // end 当没有数据读时触发 readerStream.on('end', function () { console.log(data); }); // error 在接收和写入过程中发生错误时触发。 readerStream.on('error', function (err) { console.log(err.stack); }); console.log('程序执行完毕。');
写入流
案例:main2.js
var fs = require('fs'); var data = '我是谁?'; // 创建写入流 var writeStream = fs.createWriteStream('ouput.txt'); // 编码 writeStream.write(data, 'UTF8'); // 标记文件末尾 writeStream.end(); // 处理流事件 // finish 所有数据已被写入到底层系统时触发。 writeStream.on('finish', function () { console.log('写入完成'); }); // error 在读入和写入数据是触发 writeStream.on('error', function (err) { console.log(err.stack); }); console.log('程序执行完毕。');
管道流
将一个流中的数据输入到另一个流中
案例:pipe.js
var fs = require('fs'); // 创建可读流 var readerStream = fs.createReadStream('input.txt'); // 创建写入流 var writeStream = fs.createWriteStream('ouput.txt'); // 管道读写 readerStream.pipe(writeStream); console.log('程序执行完毕。');
链式流
就是将多个输入输出流连接起来
案例:压缩文件 express.js
var fs = require('fs'); var zlib = require('zlib'); // 将 input.txt 压缩为 input.gz fs.createReadStream('input.txt') .pipe(zlib.createGzip()) .pipe(fs.createWriteStream('input.gz')); console.log('文件压缩完毕');
案例:解压文件 decompress.js
var fs = require('fs'); var zlib = require('zlib'); // 解压 input.gz 为 input.gz.txt fs.createReadStream('input.gz') .pipe(zlib.createGunzip()) .pipe(fs.createWriteStream('input.gz.txt')); console.log('解压文件完毕');
相关文章推荐
- Node.js Buffer学以致用
- Node.js 事件队列娓娓道来
- Node.js 事件循环
- 一个简单的express应用
- Node.js 异步非阻塞的回调函数
- Node.js 朴实无华的npm
- Node.js 初试啼声
- [Leetcode]24. Swap Nodes in Pairs
- [Leetcode]19. Remove Nth Node From End of List
- 222. Count Complete Tree Nodes
- 使用Node.js拓展
- 前后端分离实践
- NodeJs——(7)request的结构
- NodeJs——(6)文件系统 fs
- nodejs的npm安装错误
- 【Nodejs项目手记】Nodejs中使用图片验证码,captchapng模块可以解决Nodejs图
- Node.js+Express商业开发中的安全性考虑
- 222. Count Complete Tree Nodes
- hadoop DataNode节点超时
- hadoop DataNode节点超时