MST

星途 面试题库

面试题:Node.js 文件系统操作优化之中等难度

在Node.js中,使用fs模块进行大文件读取时,怎样通过流的方式来优化性能?请给出具体的代码示例,并说明这样做相较于普通读取方式在性能上的优势。
23.4万 热度难度
前端开发Node.js

知识考点

AI 面试

面试题答案

一键面试

代码示例

const fs = require('fs');
const readableStream = fs.createReadStream('largeFile.txt');

readableStream.on('data', (chunk) => {
    console.log('Received a chunk of data:', chunk.length, 'bytes');
});

readableStream.on('end', () => {
    console.log('All data has been read.');
});

性能优势

  1. 内存占用低:普通读取方式会一次性将整个大文件读入内存,如果文件过大,可能会导致内存溢出。而流的方式是逐块读取数据,每次处理一小部分数据,大大降低了内存的占用。
  2. 处理速度快:在流读取数据的同时就可以对数据进行处理,不必等待整个文件都读入内存后才开始处理,提高了整体的处理效率。特别是对于需要实时处理大量数据的场景,流的方式优势更为明显。