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

复制代码
相关推荐
jiangzhihao05153 小时前
前端自动翻译插件webpack-auto-i18n-plugin的使用
前端·webpack·node.js
软件技术NINI5 小时前
html css网页制作成品——HTML+CSS盐津铺子网页设计(5页)附源码
前端·css·html
mapbar_front6 小时前
面试问题—我的问题问完了,你还有什么想问我的吗?
前端·面试
quweiie6 小时前
thinkphp8+layui多图上传,带删除\排序功能
前端·javascript·layui
李鸿耀6 小时前
React 项目 SVG 图标太难管?用这套自动化方案一键搞定!
前端
闲蛋小超人笑嘻嘻6 小时前
树形结构渲染 + 选择(Vue3 + ElementPlus)
前端·javascript·vue.js
叶梅树7 小时前
从零构建A股量化交易工具:基于Qlib的全栈系统指南
前端·后端·算法
巴博尔7 小时前
uniapp的IOS中首次进入,无网络问题
前端·javascript·ios·uni-app
Asthenia04127 小时前
技术复盘:从一次UAT环境CORS故障看配置冗余的危害与最佳实践
前端
csj507 小时前
前端基础之《React(1)—webpack简介》
前端·react