可读流 + 可写流
1 | const fs = require('fs'); |
现在换成自己写的
1 | const fs = require('fs'); |
这样也可以运行成功 上面line15-24还是太麻烦了,原生有封装
pipe
1 | const fs = require('fs'); |
1 | // ReadStream.js |
分析
上面都是基于文件的流
自己可以实现自己的流
http socket 压缩 req res 这些都是靠流来实现的,所以流是nodejs的核心机制
我们这里的fs是自己实现了流,下面描述下它的执行过程:
默认可读流会提供一个read方法
1 | const {Readable} = require('stream'); |
源码看下 Readable
是什么
1 | 两个类 第一个类 是 子类:ReadStream(_read),会把读取到的数据 调用push方法传进去 父类:Readable (read) |
1 | const {Readable,Writable} = require('stream'); |
同样 WriteStream 有一个(write方法) 子类有(_write方法),子类会自己去调_write方法
1 | const {Readable,Writable} = require('stream'); |