在Node.js环境中,有哪些读取和写入文件的具体方法?请描述它们的基本用法。
考察说明
考查对Node.js核心文件系统模块常用API的掌握程度。
回答思路
- 【回答框架 1】Node.js主要通过内置的fs模块处理文件操作,该模块提供了多种API。读取文件常用fs.readFile、fs.readFileSync和fs.createReadStream,写入文件常用fs.writeFile、fs.writeFileSync和fs.createWriteStream。
- 【回答框架 2】fs.readFile和fs.writeFile是异步方法,通过回调函数获取结果,适合处理小文件,使用时需处理错误回调。例如fs.readFile('file.txt','utf8',(err,data)=>{...})。
- 【回答框架 3】fs.readFileSync和fs.writeFileSync是同步方法,会阻塞事件循环,适合在启动阶段或脚本中少量使用,但需注意异常捕获。
- 【回答框架 4】对于大文件处理,推荐使用流。fs.createReadStream和fs.createWriteStream可逐块读写,节省内存,并支持管道pipe操作。
- 【回答框架 5】选择方法时需权衡性能与代码复杂度,异步非阻塞是Node.js的最佳实践。
- 【关键点 1】fs模块是Node.js文件操作的核心,提供异步和同步API。
- 【关键点 2】小文件用readFile和writeFile,大文件用流。
- 【关键点 3】异步方法需管理回调或Promise化,同步方法会阻塞事件循环。
- 【易错点 1】忽略错误回调会导致异常未处理,如读取不存在文件。
- 【易错点 2】对大文件使用readFileSync可能导致内存溢出和事件循环阻塞。
- 【易错点 3】未指定编码时,读取内容默认为Buffer,处理字符串需显式传入'utf8'。