noodjs学习笔记 | fs文件系统模块

408 阅读2分钟

| fs文件系统模块

fs模块是Nodejs官方提供用于操作文件的模块

常用:

  1. fs.readFile 读取文件
  2. fs.writeFile 创建写入文件
  3. fs.stat 检测是文件还是目录
  4. fs.mkdir 创建目录
  5. fs.appendFile 追加文件

使用时需要引入

const fs = require("fs");
// or
import { api名字 } from 'fs';

readFile 读取文件

fs.readFile(path[,options], callback)

  • 参数1:required 字符串,文件路径
  • 参数2:可选 表示以什么编码格式来读取文件
  • 参数3: required 回调结果,参数有(err, data)
fs.readFile(__dirname + '/test/createFile/file.txt', 'utf8', (err, data) => {
    if (err) {
        console.log('读取失败');
    }
    console.log(data); // buffer 数据
    console.log(data.toString()); // 将buffer转为字符串
});

读取文件时使用以./../开头的相对路径时,很容易出现路径引用错误
原因:代码运行时执行的是node命令所处的目录
解决方法:操作文件时提供完整路径,如__dirname,不使用相对路径

writeFile 创建写入文件

fs.writeFile(file, data[,options], callback)

  • 参数1:required 字符串,文件存放路径
  • 参数2:required 写入内容
  • 参数3:可选,是对象
{
    encoding:'utf-8', //表示以什么编码格式来写入文件,默认'utf-8'
    mode: 438 , // 文件权限,默认438
    flag: 'w' // r代表读取文件, w代表写文件(默认), a代表追加
}
  • 参数4: required 回调结果,参数有(err)
fs.writeFile(__dirname +  "/test/createFile/file.txt""你好,我是写入内容23",{"flag""a"}, (err)=> {
    console.log(err);
    console.log('创建写入成功');

})

stat 检测是文件还是目录

fs.stat(path[,options], callback)

  • 参数1:required 字符串,路径
  • 参数2:可选,是对象
  • 参数3: required 回调结果,参数有(err, data)
fs.stat("./package.json"function (err, data) {
    console.log(err)
    console.log(data.isFile()) // 判断是否为文件
    console.log(data.isDirectory()) // 判断是否为目录
    console.log(data)
})

mkdir 创建目录

fs.mkdir(path[, options], callback)

  • 参数1:required 字符串,路径
  • 参数2:可选,是对象
  • 参数3:required 回调结果,参数有(err, data)
fs.mkdir("./test/createFile"(err) => {
    console.log(err)
    if (err) {
        console.log("创建失败");
        return
    }
    console.log("创建成功");
})

appendFile 追加文件

fs.appendFile(path, data[, options], callbackk)
不存在会创建再追加,存在就直接追加

  • 参数1:required 字符串,路径
  • 参数2:required 字符串,追加内容
  • 参数3:可选,是对象
  • 参数4:required 回调结果,参数有(err, data)
fs.appendFile('message.txt', 'data to append', (err) => {
  if (err) throw err;
  console.log('The "data to append" was appended to file!');
});