node.js 的 fs 模块的介绍

前言

fs 模块是 Node.js 内置的一个模块,它用于文件系统操作,包括文件读写、目录创建等。fs 模块提供了同步和异步两种方式的方法,异步方法通常以 Async 结尾,比如 fs.readFileAsync(),它们接受一个回调函数作为参数,用于处理异步操作的结果。同步方法通常没有 Async 后缀,比如 fs.readFileSync(),它们会阻塞程序的执行,直到操作完成,然后返回结果。一般来说,异步方法的性能更好,但是同步方法的逻辑更简单。

如何使用 fs 模块?

要使用 fs 模块,首先需要引入它,可以使用 require() 函数,然后,就可以调用 fs 模块的方法,比如读取一个文件的内容,可以使用 fs.readFile() 方法,如下:

javascript 复制代码
const fs = require('fs');

fs.readFile('test.txt', 'utf8', (err, data) => {
  if (err) {
    console.error(err);
  } else {
    console.log(data);
  }
});

这个例子中,我们使用了 fs.readFile() 的异步方法,它接受三个参数:

  • 第一个是文件名,
  • 第二个是编码格式,
  • 第三个是回调函数。

回调函数的第一个参数是错误对象,如果操作成功,它会是 null,否则会包含错误信息。

回调函数的第二个参数是文件的内容,如果操作成功,它会是一个字符串,否则会是 undefined。

如果我们想使用 fs.readFileSync() 的同步方法,我们可以这样写:

javascript 复制代码
  const data = fs.readFileSync('test.txt', 'utf8');

fs 模块有哪些常用的方法?

fs 模块有很多方法,我们无法在这里一一介绍,但是我们可以列举一些常用的方法,如下:

  • fs.writeFile() 和 fs.writeFileSync():用于写入文件,如果文件不存在,会创建一个新文件,如果文件存在,会覆盖原有内容。
  • fs.appendFile() 和 fs.appendFileSync():用于追加文件,如果文件不存在,会创建一个新文件,如果文件存在,会在文件末尾追加内容。
  • fs.unlink() 和 fs.unlinkSync():用于删除文件。
  • fs.rename() 和 fs.renameSync():用于重命名文件或目录。
  • fs.stat() 和 fs.statSync():用于获取文件或目录的状态信息,比如大小、修改时间等。
  • fs.readdir() 和 fs.readdirSync():用于读取目录的内容,返回一个包含文件名和子目录名的数组。
  • fs.mkdir() 和 fs.mkdirSync():用于创建目录。
  • fs.rmdir() 和 fs.rmdirSync():用于删除目录。
  • fs.copyFile() 和 fs.copyFileSync():用于复制文件。
  • fs.watch() 和 fs.watchFile():用于监视文件或目录的变化,当发生变化时,会触发一个事件。

总结

fs 模块是 Node.js 的一个重要的模块,它可以让我们在 Node.js 中操作文件系统,实现一些常见的功能,比如读写文件、创建删除目录等。fs 模块提供了同步和异步两种方式的方法,我们可以根据不同的场景选择合适的方法。

复制代码
相关推荐
攀小黑17 分钟前
vue3+Web Speech API 封装了一个弹窗语音输入
前端·macos·xcode
roamingcode19 分钟前
4.5 小时,从一句话需求到可安装的 Chrome 插件:一次 AI 结对开发的完整复盘
前端·人工智能·chrome·claude·codex
️学习的小王1 小时前
Windows Claude Code 接入 Playwright‑MCP,调用本机Edge浏览器(避坑完整教程)
前端·windows·edge
律宏阔1 小时前
CloakBrowser 开发踩坑笔记
前端·浏览器
Made in Haven7121 小时前
HTML课程笔记补2
前端·笔记·html
Cry丶1 小时前
Vue 3 业务管理页面实战:组件拆分、父子通信与弹窗复用
前端·javascript·vue.js·父子通信·组件拆分·弹窗复用
雪芽蓝域zzs1 小时前
Vue前端配置路由通配捕获 404
前端·javascript·vue.js
计算机魔术师1 小时前
Anthropic 发布电商 Agent 架构与生产实践指南,并开源 commerce-agents 参考实现
前端
IMPYLH1 小时前
HTML 的 <ol> 元素
前端·html
IMPYLH1 小时前
HTML 的 <object> 元素
前端·html