在 JavaScript (Node.js) 中操作文件系统:初学者完整指南

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

在 JavaScript (Node.js) 中操作文件系统:初学者完整指南



操作文件系统是创建服务器端应用程序、自动化脚本或数据处理工具时的关键任务之一。在 JavaScript (Node.js) 中,有一个内置模块 fs(File System)用于此目的。本文将向您介绍在 Node.js 中操作文件和文件夹的基础知识,展示如何读取、写入、创建和删除文件,并解释同步方法与异步方法之间的区别。



Node.js 中的 fs 模块是什么?



fs 模块提供了与操作系统文件系统交互的 API。它可以执行以下操作:



  • 读取文件内容
  • 将数据写入文件
  • 创建和删除目录
  • 重命名和复制文件
  • 检查文件是否存在
  • 获取文件信息(统计信息)


要开始使用 fs 模块,您需要在代码中引入它:



const fs = require('fs');


fs 模块的所有方法都有三种变体:同步(带有 Sync 后缀)、带回调的异步以及基于 Promise 的异步(使用 fs.promises)。在本指南中,我们将重点介绍使用 async/await 的现代方法。



在 Node.js 中读取文件



读取文件内容的最简单方法是使用 fs.promises 中的 readFile 方法。来看一个示例:



const fs = require('fs').promises;

async function readFileExample() { try { const data = await fs.readFile('example.txt', 'utf8'); console.log('文件内容:', data); } catch (error) { console.error('读取文件时出错:', error.message); }}

readFileExample();


在这个示例中:

  • 我们导入 fs.promises —— 返回 Promise 的模块版本。
  • readFile 函数接受文件路径和编码(本例中为 'utf8')。
  • 如果文件不存在,将抛出错误,我们在 catch 块中处理该错误。


如果您需要同步读取文件(在简单脚本中),请使用 readFileSync:



const fs = require('fs');

try { const data = fs.readFileSync('example.txt', 'utf8'); console.log(data);} catch (error) { console.error(error.message);}


重要提示: 同步方法会阻塞代码执行,直到操作完成。在服务器端应用程序(例如 Express)中,请始终使用异步方法,以免阻塞其他请求的处理。



将数据写入文件



要将数据写入文件,请使用 writeFile 方法。如果文件存在,其内容将被覆盖。如果文件不存在,则会自动创建。



const fs = require('fs').promises;

async function writeFileExample() { try { const content = '你好,世界!这是一条测试记录。'; await fs.writeFile('output.txt', content, 'utf8'); console.log('文件写入成功!'); } catch (error) { console.error('写入错误:', error.message); }}

writeFileExample();


如果您想将数据追加到现有文件的末尾(而不覆盖它),请使用 appendFile 标志:



const fs = require('fs').promises;

async function appendToFile() { try { await fs.appendFile('log.txt', `新记录:${new Date()}`, 'utf8'); console.log('数据已添加到文件末尾'); } catch (error) { console.error('错误:', error.message);\

博客

书籍推荐