MST

星途 面试题库

面试题:Node.js文件系统API之读取文件操作

请使用Node.js的文件系统API实现一个读取本地文本文件内容并打印的功能,要求处理可能出现的错误,简述fs.readFile和fs.readFileSync的区别及适用场景。
28.6万 热度难度
前端开发Node.js

知识考点

AI 面试

面试题答案

一键面试

读取本地文本文件内容并打印的功能实现

const fs = require('fs');

fs.readFile('test.txt', 'utf8', (err, data) => {
    if (err) {
        console.error('读取文件出错:', err);
        return;
    }
    console.log('文件内容:', data);
});

fs.readFile和fs.readFileSync的区别及适用场景

  1. 区别
    • fs.readFile:这是一个异步操作。它不会阻塞Node.js事件循环,在读取文件时,Node.js可以继续执行后续代码。读取完成后,通过回调函数返回结果。
    • fs.readFileSync:这是一个同步操作。它会阻塞Node.js事件循环,直到文件读取操作完成。在读取文件期间,Node.js无法执行其他代码。它直接返回读取到的数据。
  2. 适用场景
    • fs.readFile:适用于大多数场景,特别是在I/O操作较多的应用中,因为它不会阻塞事件循环,能提高应用的性能和响应性。例如在Web服务器应用中,处理多个请求时使用异步读取文件不会影响其他请求的处理。
    • fs.readFileSync:适用于需要立即获取文件内容并继续执行后续同步操作的场景,且文件读取操作耗时较短的情况。例如在启动脚本中,需要读取配置文件并根据配置立即初始化一些参数时可以使用同步读取。但如果文件较大或在高并发场景下,同步读取可能会导致应用卡顿,不建议使用。