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 模块提供了同步和异步两种方式的方法,我们可以根据不同的场景选择合适的方法。

复制代码
相关推荐
属于自己的天空19 分钟前
每天省去重复 Prompt:我用 Skills 把 CRUD 生成标准化了
前端·后端
卡卡罗特AI19 分钟前
GitHub怎么用?零基础,保姆级使用教程-上!建议收藏
前端·后端·github
自然 醒21 分钟前
v-tooltip自定义指令封装
前端·javascript·vue.js
因_崔斯汀33 分钟前
Three.js 3D 热力云图效果实现
前端·three.js
爱勇宝1 小时前
人到了一定年纪,才会看懂这些人性真相
前端·后端
梓䈑1 小时前
【用 Vibe Coding 实现的 C++17 在线判题系统】前端开发 + Web 自动化测试
前端·c++·ai编程
程序员黑豆2 小时前
鸿蒙应用开发 @BuilderParam 使用教程:实现灵活的 UI 插槽
前端·harmonyos
万少2 小时前
用 TraeWork 给小孩做一个家庭工作台
前端·人工智能·后端
孙启超2 小时前
【AI应用开发】ReAct 原理是什么?和普通直接提问 LLM 差别在哪?
前端·人工智能·llm·agent·react·rag·ai应用开发