fs模块是nodejs的一个内置模块,fs模块用于对系统文件及目录进行读写操作。要使用此模块:

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

fs模块提供了一些操作系统文件相关的api,所有的文件系统操作都具有同步和异步的形式。异步的形式总是把完成回调作为其最后一个参数。 传给完成回调的参数取决于具体方法,但第一个参数总是预留给异常。 如果操作被成功地完成,则第一个参数会为 nullundefined

文件相关

1.读取文件
  1. //1.同步方式
  2. let result = fs.readFileSync('文件名','utf-8');
  3. //2.异步方式
  4. let result = fs.readFile('文件名','utf-8',(err,data)=>{
  5. //err报错信息,若无报错返回 null
  6. //data 读取的内容
  7. if(err !== null) return err;
  8. ...
  9. })

2.写入文件
  • 两种方式,覆盖式和追加式
  • 写入内容只能是字符串
  • 若写入其它类型数据,如对象,可通过 JSON.stringify() 转字符串
  • 若文件不存在,则自动新建该文件

    1. //1.覆盖式写入
    2. fs.writeFileSync('文件名','内容');
    3. //2.追加式写入
    4. fs.appendFileSync('文件名','内容');

    3.删除文件
    1. fs.unlinkSync('文件名');

    4.复制文件
    1. fs.copyFileSync('源文件名','备份文件名');

    5.重命名文件
    1. fs.renameSync('源文件名','新文件名');

    目录相关

    1.读取目录
  • 将读取目录中的文件名存入数组,忽略尾缀

    1. let res = fs.readdirSync('目录名');

    2.创建目录
  • 不可嵌套创建,可创建子目录

    1. let res = fs.mkdirSync('目录名');

    3.删除空目录
    1. let res = fs.rmdirSync('目录名');

    判断文件/目录是否存在

    1. //1.存在返回true,不存在返回false
    2. let isFile = fs.existsSync('文件名');
    3. //2.存在什么都不发生,不存在报错 => 尽量通过try{}catch{}捕获错误
    4. let isFile = fs.accessSync('文件名');

    检查是文件还是目录

    1. const file = fs.statSync('test.txt'); //查看文件信息
    2. file.isDirectory() //判断目录
    3. file.isFile() //判断文件