博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
24.Node.js Stream(流)
阅读量:6992 次
发布时间:2019-06-27

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

转自:http://www.runoob.com/nodejs/nodejs-stream.html

Stream 是一个抽象接口,Node 中有很多对象实现了这个接口。例如,对http 服务器发起请求的request 对象就是一个 Stream,还有stdout(标准输出)。

 

Node.js,Stream 有四种流类型:

 

  • Readable - 可读操作。

  • Writable - 可写操作。

  • Duplex - 可读可写操作.

  • Transform - 操作被写入数据,然后读出结果。

 

所有的 Stream 对象都是 EventEmitter 的实例。常用的事件有:

 

  • data - 当有数据可读时触发。

  • end - 没有更多的数据可读时触发。

  • error - 在接收和写入过程中发生错误时触发。

  • finish - 所有数据已被写入到底层系统时触发。

 

本教程会为大家介绍常用的流操作。

从流中读取数据

 

创建 input.txt 文件,内容如下:

www.runoob.com

创建 main.js 文件, 代码如下:

var fs =require("fs");var data ='';// 创建可读流var readerStream = fs.createReadStream('input.txt');// 设置编码为 utf8。 readerStream.setEncoding('UTF8');// 处理流事件 --> data, end, and error readerStream.on('data',function(chunk){

data += chunk;}); readerStream.on('end',function(){
console.log(data);}); readerStream.on('error',function(err){
console.log(err.stack);}); console.log("程序执行完毕");

以上代码执行结果如下:

程序执行完毕

 

 

写入流

创建 main.js 文件, 代码如下:

var fs =require("fs");var data ='菜鸟教程官网地址:www.runoob.com';// 创建一个可以写入的流,写入到文件 output.txt 中var writerStream = fs.createWriteStream('output.txt');// 使用 utf8 编码写入数据writerStream.write(data,'UTF8');// 标记文件末尾writerStream.end();// 处理流事件 --> data, end, and errorwriterStream.on('finish',function(){
console.log("写入完成。");});writerStream.on('error',function(err){
console.log(err.stack);});console.log("程序执行完毕");

以上程序会将 data 变量的数据写入到 output.txt 文件中。代码执行结果如下:

$ node main.js

 

 

Stream 是一个抽象接口,Node 中有很多对象实现了这个接口。例如,对http 服务器发起请求的request 对象就是一个 Stream,还有stdout(标准输出)。

Node.js,Stream 有四种流类型:

  • Readable - 可读操作。

  • Writable - 可写操作。

  • Duplex - 可读可写操作.

  • Transform - 操作被写入数据,然后读出结果。

所有的 Stream 对象都是 EventEmitter 的实例。常用的事件有:

  • data - 当有数据可读时触发。

  • end - 没有更多的数据可读时触发。

  • error - 在接收和写入过程中发生错误时触发。

  • finish - 所有数据已被写入到底层系统时触发。

本教程会为大家介绍常用的流操作。

转载地址:http://onbvl.baihongyu.com/

你可能感兴趣的文章
HTTP请求、响应报文格式
查看>>
zendstudio中出现中文乱码的解决方法
查看>>
服务器端与客户端TCP连接入门(一)
查看>>
lombok使用方法
查看>>
多线程基础
查看>>
1028: C语言程序设计教程(第三版)课后习题8.2
查看>>
批量更新软连接脚本
查看>>
Linux 文件和目录的属性
查看>>
Log4j配置使用
查看>>
初步认识Hadoop
查看>>
jQuery对象扩展方法(Extend)深度解析
查看>>
9道前端技能编程题
查看>>
NOIP 2000年提高组复赛 单词接龙
查看>>
mysql-索引与优化
查看>>
sql server 2008安装需要一直重启。但重启后又没有达到效果。
查看>>
Psp个人软件开发工具
查看>>
uva 1395(kruskal变形)
查看>>
斜率优化
查看>>
php 比较运算符
查看>>
for循环效率问题求解答
查看>>