Skip to content
0

文件流

Node.js 中的文件流主要用于文件数据的读写

ReadStream & WriteStream

利用可读流(ReadStream) 和 可写流(WriteStream) 读写文件:

import fs from 'fs'

const readStream = fs.createReadStream('child.js');

readStream.setEncoding('utf8').on('data', (chunk) => {
  // chunk 的数据
  console.log(chunk);
});

const writeStream = fs.createWriteStream('index.js')

writeStream.write('hello world')
writeStream.end()

文件流的主要优点:

  • 提高文件的读写速度,特别是大文件。
  • 可以按块处理文件,而不是等待整个文件加载完成。
  • 可以进行管道操作,将文件数据通过管道传输到其他流。
  • 异步化文件读写

结构

对于 createReadStream 创建的对象,所构建的对象关系如下图所示:

实际上所有的 stream 都是基于 EventEmitter 的,而 stream 也提供了一些事件被监听

Released under the MIT License.