Node.js 内置模块Stream(流)
"流"是一种抽象的数据结构
通过使用"流"可以将一段数据分割成几段,并按顺序传输,使用"流"可以降低对系统性能的要求,减少对CPU的消耗
Stream有三个响应事件
1.data -- 表示数据正在传输
2.end -- 表示数据传输完成
3.error -- 表示数据传输有误
我们以创建一个文档流读取为例:
- //使用严格模式
- "use strict";
- //引入fs模块
- const fs = require("fs");
- //创建文档阅读流
- let re = fs.createReadStream("test.txt", "utf-8");
- //监听刚刚创建的文档流的状态
- re.on("data", function( chunk ){
- console.log("data: ");
- console.log( chunk );
- });
- re.on("end", function(){
- console.log("Read End!!");
- });
- re.on("error", function(err){
- console.log(err);
- });
注:在一次读取文档的过程中,chunk是可以有多个的
文档流写入的方式如下:
- "use strict;
- const fs = require("fs");
- //创建写入流
- let wr = fs.createWriteStream("test.txt", "utf-8");
- //一段一段地写入到test.txt文档中
- wr.write("这是要写入的东西");
- wr.write("另一段要写入的东西");
- wr.write("写完了");
- console.log("Write End!!");
注:需要流写入的话需要使用write方法
Node.js 内置模块Stream(流)的更多相关文章
- node.js中stream流中可读流和可写流的使用
node.js中的流 stream 是处理流式数据的抽象接口.node.js 提供了很多流对象,像http中的request和response,和 process.stdout 都是流的实例. 流可以 ...
- Node.js:Stream(流)
Stream 是一个抽象接口,Node 中有很多对象实现了这个接口.例如,对http 服务器发起请求的request 对象就是一个 Stream,还有stdout(标准输出). Node.js,Str ...
- 理解 Node.js 中 Stream(流)
Stream(流) 是 Node.js 中处理流式数据的抽象接口. stream 模块用于构建实现了流接口的对象. Node.js 提供了多种流对象. 例如,对 HTTP 服务器的request请求和 ...
- 【node.js】Stream(流)
Stream 有四种流类型: Readable - 可读操作. Writable - 可写操作. Duplex - 可读可写操作. Transform - 操作被写入数据,然后读出结果. 所有的 St ...
- Node.js数据流Stream之Readable流和Writable流
一.前传 Stream在很多语言都会有,当然Node.js也不例外.数据流是可读.可写.或即可读又可写的内存结构.Node.js中主要包括Readable.Writable.Duplex(双工)和Tr ...
- 【Node.js】Stream(流)的学习笔记
最近学习使用Node.js创建http proxy server,少不了要跟Stream打交道.昨天开始查阅一些资料,多少有了一些粗浅了解.整理在这里,供学习之用. 从Node.js API文档中可知 ...
- [Node.js] Node.js中的流
原文地址:http://www.moye.me/2015/03/29/streaming_in_node/ 什么是流? 说到流,就涉及到一个*nix的概念:管道——在*nix中,流在Shell中被实现 ...
- Node.js 【Stream之笔记】
从Node.js API文档中可知, 'A stream is an abstract interface implemented by various objects in Node. For ex ...
- Node 中的 stream (流)
流的概念 流(stream)在 Node.js 中是处理流数据的抽象接口(abstract interface). stream 模块提供了基础的 API .使用这些 API 可以很容易地来构建实现流 ...
随机推荐
- 【BZOJ1414/3705】[ZJOI2009]对称的正方形 二分+hash
[BZOJ1414/3705][ZJOI2009]对称的正方形 Description Orez很喜欢搜集一些神秘的数据,并经常把它们排成一个矩阵进行研究.最近,Orez又得到了一些数据,并已经把它们 ...
- Ahead-of-time compilation
https://en.wikipedia.org/wiki/Ahead-of-time_compilation
- A Short Introduction to Boosting
http://www.site.uottawa.ca/~stan/csi5387/boost-tut-ppr.pdf Boosting is a general method for improvin ...
- 简单老式Java对象 横切关注点 最小侵入性编程 声明式编程 避免强迫类继承和接口实现
Spring In Action data injection aspect-oriented programming Plain Old Java Object 依赖注入能让相互协作的软件组件保持松 ...
- 【洛谷 2405】 non天平
题目背景 non最近正在为自己的体重而苦恼,他想称量自己的体重.于是,他找来一个天平与许多砝码. 题目描述 砝码的重量均是n的幂次,n^1.n^2.n^3.n^4.n^5的……non想知道至少要多少个 ...
- Impala 安装笔记3一impala安装
安装impala之前,确认满足Cloudera Impala Requirements中要求的所有条件: Supported Operating Systems Supported CDH Versi ...
- Ubuntu 12.04安装grub2过程中出错怎么办【转】
本文转载自:https://zhidao.baidu.com/question/491448169666671012.html 其实是可以不用优盘启动的.但使用优盘没有风险.你的系统虽然出现==不能安 ...
- HDU4045 Machine scheduling —— 隔板法 + 第二类斯特林数
题目链接:https://vjudge.net/problem/HDU-4045 Machine scheduling Time Limit: 5000/2000 MS (Java/Others) ...
- Zookeeper实现负载均衡原理
先玩个正常的,好玩的socket编程: 服务端: 首先公共的这个Handler: package com.toov5.zkDubbo; import java.io.BufferedReader; i ...
- Oracle在Java中事物管理
对于 对数据库中的数据做dml操作时,能够回滚,这一事物是很重要的 下面例子是对数据库中数据进行修改 package com.demo.oracle; import java.sql.Connecti ...