Node.js系列学习之stream模块

系列文章目录

一阶段
1.Node基本模块之 fs
2. Node基本模块之stream
3.Node基本模块之http
4.Node基本模块之crypto
二阶段 koa框架
1.koa入门以及koa如何处理不同url
2.koa的模板引擎Nunjucks
3.koa实现MVC模式
三阶段
1.Node+WebSocket 实现一个聊天室
四阶段
1.在koa中如何使用REST
2.在koa中编写符合REST 的接口



前言

这个Node系列学习主要是对Node进一步深层次的学习了解,大概会用10篇左右的文章来和大家分享学习心得,感兴趣的小伙伴可以关注一下。

一、stream模块是干什么的?

  • stream是Node.js提供的又一个仅在服务区端可用的模块,目的是支持“流”这种数据结构。
  • 流是一种抽象的数据结构,流的特点是数据是有序的,而且必须依次读取,或者依次写入,不能像Array那样随机定位。
  • 有些流用来读取数据,比如从文件读取数据时,可以打开一个文件流,然后从文件流中不断地读取数据。有些流用来写入数据,比如向文件写入数据时,只需要把数据不断地往文件流中写进去就可以了。
  • 在Node.js中,流也是一个对象,我们只需要响应流的事件就可以了:data事件表示流的数据已经可以读取了,end事件表示这个流已经到末尾了,没有数据可以读取了,error事件表示出错了。

二、具体使用步骤

1.读取文本

下面是一个从文件流读取文本

var rs = fs.createReadStream('sample.txt', 'utf-8');

rs.on('data', function(chunk) {
    console.log('DATA:')
    console.log(chunk);
});

rs.on('end', function() {
    console.log('END');
});

rs.on('error', function(err) {
    console.log('ERROR: ' + err);
});

2.写入文件

要以流的形式写入文件,只需要不断调用write()方法,最后以end()结束

var ws1 = fs.createWriteStream('output1.txt', 'utf-8');
ws1.write('使用Stream写入文本数据...\n');
ws1.write('END.');
ws1.end();

var ws2 = fs.createWriteStream('output2.txt');
ws2.write(new Buffer('使用Stream写入二进制数据...\n', 'utf-8'));
ws2.write(new Buffer('END.', 'utf-8'));
ws2.end();

3.pipe管道

我们用pipe()把一个文件流和另一个文件流串起来,这样源文件的所有数据就自动写入到目标文件里了,所以,这实际上是一个复制文件的程序
var rs = fs.createReadStream('sample.txt');
var ws = fs.createWriteStream('copied.txt');
rs.pipe(ws);

总结

这篇文章主要对Node 基本模块中的stream模块进行了简单的梳理学习,后续还需要结合一些实际场景去使用,熟悉。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值