nodejs笔记之流(stream)
nodejs的stream有四种流类型:
可读:Readable
可写:Writable
可读可写:Duplex
操作被写入数据,然后读出结果:Transform
常用事件:
data:有数据可读时触发
end:没有数据可读触发
error:读写过程出错触发;
finish:所有数据被写入到底层系统时触发;
创建可读流:
// 注: utf8中,中文占三个字符
// var data = ''; // 创建可读流二
var fs = require("fs");
var readerStream = fs.createReadStream('./file/333.txt',{
flags:'r',//我们要对文件进行何种操作
start:3,//从索引为3的位置开始读
//这是我的见过唯一一个包括结束索引的
end:40,//读到索引为8结束
highWaterMark:3//缓冲区大小
}); // 设置编码为 utf8。
readerStream.setEncoding('UTF8'); // 处理流事件 --> data, end, and error
readerStream.on('data', function(chunk) {
// data += chunk;
console.log(chunk + "------");
}); readerStream.on('end',function(data){
console.log(data);
}); readerStream.on('error', function(err){
console.log(err.stack);
}); console.log("程序执行完毕");
管道读写操作:
//读取一个文件内容后写入另一个文件中,会覆盖原有内容 // 创建一个可写流
var fs = require("fs");
var readStream = fs.createReadStream('./file/demo.html');
var writeStream = fs.createWriteStream('output.html'); // 管道读写操作
// 读取 input.txt 文件内容,并将内容写入到 output.txt 文件中
readStream.pipe(writeStream); console.log("程序执行完毕"); //读取一个文件内容后写入另一个文件中,追加在原有内容后 // 追加
var read = fs.createReadStream('./file/1.txt');
//设置第二个参数append
var write = fs.createWriteStream('output.txt', { 'flags': 'a' });
//管道流读写操作
read.pipe(write);
console.log('执行完毕');
nodejs笔记之流(stream)的更多相关文章
- nodeJS之流stream
前面的话 当内存中无法一次装下需要处理的数据时,或者一边读取一边处理更加高效时,我们就需要用到数据流.NodeJS中通过各种Stream来提供对数据流的操作.本文将详细说明NodeJS中的流strea ...
- [Linux] 流 ( Stream )、管道 ( Pipeline ) 、Filter - 笔记
流 ( Stream ) 1. 流,是指可使用的数据元素一个序列. 2. 流,可以想象为是传送带上等待加工处理的物品,也可以想象为工厂流水线上的物品. 3. 流,可以是无限的数据. 4. 有一种功能, ...
- Java笔记:Java 流(Stream)、文件(File)和IO
更新时间:2018-1-7 12:27:21 更多请查看在线文集:http://android.52fhy.com/java/index.html java.io 包几乎包含了所有操作输入.输出需要的 ...
- angular2 学习笔记 ( rxjs 流 )
RxJS 博大精深,看了好几篇文章都没有明白. 范围牵扯到了函数响应式开发去了... 我对函数式一知半解, 响应式更是第一次听到... 唉...不过日子还是得过...混着过先呗 我目前所理解的很浅, ...
- JAVA基础知识之IO——IO流(Stream)的概念
Java IO 流 Java将不同的设备或载体(键盘.文件.网络.管道等)的输入输出数据统称为"流"(Stream),即JAVA的IO都是基于流的. JAVA传统的所有流类型类都包 ...
- 【stanford C++】字符串(String)与流(Stream)
字符串(String)与流(Stream) 一.C++中字符串(String) 字符串(String):就是(可能是空的)字符序列. C++中的字符串在概念上和Java中的字符串类似. C++字符串用 ...
- c#中字节数组byte[]、图片image、流stream,字符串string、内存流MemoryStream、文件file,之间的转换
字节数组byte[]与图片image之间的转化 字节数组转换成图片 public static Image byte2img(byte[] buffer) { MemoryStream ms = ne ...
- java 学习笔记之 流、文件的操作
ava 学习笔记之 流.文件的操作 对于一些基础的知识,这里不再过多的解释, 简单的文件查询过滤操作 package com.wfu.ch08; import java.io.File; import ...
- Java - 17 Java 流(Stream)、文件(File)和IO
Java 流(Stream).文件(File)和IO Java.io包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标. Java.io包中的流支持很多种格式,比如:基本类型. ...
随机推荐
- Kotlin从入门到放弃
1.eclipse kotlin安装: http://blog.csdn.net/u014134488/article/details/50684922 2.Android Studio kotlin ...
- 记录C#中的扩展方法
C#中的扩展方法. 系统自带的类型,我们无法去修改: 修改源代码需要较大的精力,而且可能会带来错误: 我们只是需要一个或者较少的几个方法,修改源代码费时费力: 被扩展的类是sealed的,不能被继承: ...
- uwp 动画Storyboard
代码如下: <Page.Resources> <Storyboard x:Name="storyboard"> < ...
- 微信小程序调用高德地图
index.wxml: longitude:经度 latitude:维度 地图所定位的区域 index.js 地图所定位的点
- C#的托管与非托管大难点
托管代码与非托管代码 众所周知,我们正常编程所用的高级语言,是无法被计算机识别的.需要先将高级语言翻译为机器语言,才能被机器理解和运行.在标准C/C++中,编译过程是这样的:源代码首先经过预处理器,对 ...
- centos7安装mysql8
1.检查系统是否有安装mysql或mariadb,如果有则删除 2.yum localinstall https://repo.mysql.com//mysql80-community-release ...
- js除法四舍五入
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...
- 截取字段split
172.0.0.1String[] splitAddress=qip.split("\\.");//--172001 String ip=splitAddress[0]+" ...
- ADB——adb devices unauthorized
我们只有在手机打开USB调试,并且允许电脑对其进行调试的前提下才可以用ADB进行自动化操作手机,如果出现unauthorized提示的话就是说明手机没有允许电脑对其调试 这个时候通常手机回弹出允许调试 ...
- 806. Number of Lines To Write String
806. Number of Lines To Write String 整体思路: 先得到一个res = {a : 80 , b : 10, c : 20.....的key-value对象}(目的是 ...