`
xieye
  • 浏览: 834847 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

node的流对象学习(读流和写流)

阅读更多
依然用上次的数列实现。

这次包含一个读流对象,一个写流对象。
全部代码

/**
 * 用流来实现斐波那契数列
 * 
 * @author yyy
 */
var stream=require('stream');
var util=require('util');

// -------------- 下面是可读流 -----------------
function StreamChildRead(n)
{
    this.a=0;
    this.b=1;
    this.n = n;
    stream.Readable.call(this);
}
util.inherits(StreamChildRead, stream.Readable );

// 覆盖父类的方法
StreamChildRead.prototype._read = function(){
    this.push( this.a.toString());
    this.push(  this.b.toString());
    
    for(let i=2;i<= this.n+1-2;i++) {
      [this.a, this.b] = [this.b, this.a+this.b];
      this.push( `${this.b}`  );
    }
    this.push(null);
};

// --------------- 下面是可写流  --------------

function StreamChildWrite()
{
    this.count=0;
    stream.Writable.call(this);
}
util.inherits(StreamChildWrite, stream.Writable );

// 覆盖父类的方法
StreamChildWrite.prototype._write = function(chunk,encoding,callback){
   process.stdout.write( ('f('+ this.count++) +"):"+ chunk.toString()+'\n');
   callback();
};

 (new StreamChildRead(10)).pipe(new  StreamChildWrite());


输出如下所示:
f(0):0
f(1):1
f(2):1
f(3):2
f(4):3
f(5):5
f(6):8
f(7):13
f(8):21
f(9):34

分享到:
评论

相关推荐

    说说node中的可读流和可写流的区别

    流又分为四种类型:可读流、可写流、双工流和转换流。后两种其实是对可读和可写流的应用。所以我想先聊聊可读流和可写流。 可读流 可读流有两种模式,并随时可以转换,我们可以通过监听可读流的事件来操作它。 两种...

    Node.js-简单的单向流多路复用器功能非常的少

    流(Stream)在 Node.js 中被设计为可读、可写或同时具备这两种能力的对象。它们允许数据以块(chunk)的形式进行处理,而不是一次性加载整个数据集,这大大降低了内存占用并提高了性能。单向流意味着数据只能从源流...

    8案例七:[视频流转 MP3 工具] - Node 数据流和管道 - Stream[pipe(1).md

    可写流用于消费数据,通常接收可读流输出的数据,并将数据写入目标对象中。可写流的使用中,一个关键的事件是`drain`,该事件表明当前写入操作完成,可以向可写流中继续写入数据。 3. **DuplexStream(双工流)** ...

    25-stream (流).pdf

    Stream 可以分为可读流(Readable Stream)、可写流(Writable Stream)和 Duplex 流(Duplex Stream),每种流都有其特点和应用场景。 可读流(Readable Stream) 可读流是指可以从中读取数据的流。例如,`fs....

    Node.js-对Node.js中stream模块的学习积累和理解

    - 可读流用于接收数据,如文件读取或网络请求。它们通过事件触发机制来提供数据,例如"data"事件。 - 使用`read()`方法或者监听"data"事件来获取数据块。 - `Readable`流可以通过`pipe()`方法连接到`Writable`流...

    node离线文档v10.14

    `stream` 模块定义了不同类型的流,如可读流、可写流、双工流等,它们可以组合使用以构建复杂的流数据处理管道。 5. **进程与模块管理**:Node.js 提供了 `child_process` 模块,可以创建子进程执行命令,进行进程...

    node.js源码 node-v21.0.0.tar.gz

    流分为可读、可写、Duplex和Transform四种类型,广泛应用于网络请求、文件操作等场景。 6. **文件系统(fs)**:Node.js提供了丰富的文件系统API,如读取、写入、创建、删除文件等,这些API都是非阻塞的,便于进行...

    node.js开发指南 pdf+源码

    8. **流处理**:Node.js的流API使得处理大量数据变得高效,讲解如何创建和使用可读、可写、可Duplex和Transform流。 9. **包管理器NPM**:介绍npm(Node Package Manager)的使用,包括安装、发布和管理依赖包,...

    node总结(例子+文档)

    流分为可读、可写、 Duplex 和 Transform 四种类型,可以组合使用实现复杂的数据处理。 8. **文件系统(File System,简称FS)**: Node.js 提供了对文件系统的操作接口,可以进行读写、创建、删除文件等操作,...

    node js 中文文档.pdf 下载

    ### Node.js 中文文档知识点概览 #### 一、总述(Synopsis) ...以上概述了Node.js中文文档中提到的主要知识点,包括核心概念、内置模块、API使用方法等,为深入学习和应用Node.js打下了坚实的基础。

    Node.js入门经典源代码

    9. **Promise和async/await**: 虽然Node.js最初主要使用回调函数处理异步操作,但现代版本已经引入了Promise和async/await,提供更简洁和易读的异步控制流。 10. **WebSocket**: 如果源代码包含WebSocket相关内容,...

    Node.js Design Patterns, 2nd Edition.pdf

    - **流处理**:深入讲解Node.js中的流处理技术,包括可读流、可写流、双向流等。 #### 三、作者简介 - **Mario Casciaro**:软件工程师兼企业家,热衷于技术和开源知识。拥有软件工程硕士学位,在IBM工作多年,参与...

    node.js v0.5.7官方API文档

    - `util.pump(readableStream, writableStream, [callback])`用于将一个可读流的数据复制到另一个可写流中。 - `util.inherits(constructor, superConstructor)`用于实现继承。 2. **事件**: - `events....

    node的process以及child_process模块学习笔记

    1. `stdin`:标准输入是一个可读流,用于接收来自用户的输入数据。 2. `stdout`:标准输出是一个可写流,用于将程序的输出数据发送到屏幕或文件。 3. `stderr`:标准错误输出流,用于输出错误信息,通常与`stdout`...

    professional_node.js

    本章详细介绍了如何使用Stream API进行流式数据处理,包括可读流、可写流、双向流和转换流的概念及其用法。 - **构建TCP服务器**(第十章) - 介绍了如何使用net模块构建TCP服务器和客户端,以及如何处理连接、数据...

    10.node.js.rar

    8. **流(Stream)**:讲解了Node.js中的流数据处理,包括可读流、可写流、Duplex流和Transform流的使用场景和操作方式。 9. **中间件(Middleware)**:如Express框架中的中间件概念,以及如何编写和使用中间件。 10. *...

    深入理解Node内建模块和对象

    Stream 模块提供了可读、可写、可读可写以及转换流等多种类型,可以满足不同场景下的数据流处理需求。 在使用 Node.js 内建模块时,建议查阅官方文档以获得最准确的信息。在 Node.js 官网(***)上,可以找到对应...

    Node.js高级编程.pdf

    流分为可读流、可写流、双工流和转换流四种类型。 7. **Promise和async/await**:Node.js从版本7开始引入Promise,从版本8开始支持async/await,为异步编程提供了更优雅的解决方案,降低了回调地狱带来的复杂性。 ...

    Node.js 官方文档中文版

    Node.js 的官方文档中文版是学习和掌握这一技术的重要资源,涵盖了从基础概念到高级特性的全面教程。 一、基础篇 1. **安装与更新**:Node.js 可以通过官方网站下载安装,提供了多种操作系统平台的支持。文档会详细...

    node-v0.10.26源码

    Node.js的流API是处理数据流的核心,支持读、写、Duplex和Transform四种流类型。在v0.10.26中,流广泛应用于网络传输、文件读写等场景,提高了数据处理的效率。 8. **错误处理** 错误处理是任何软件开发中的重要...

Global site tag (gtag.js) - Google Analytics