fs模块

作者: 杜先生 | 发表于 2021-11-27 10:26 | 分类 web | 阅读 12 | 评论 0

1、文件写入

1-1、同步写入文件

路径必须存在 文件可以不存在 不存在则创建新的文件

encoding 编码 write 写 Sync 同步

// require 需求
var fs = require("fs");
// utf8 万国码
fs.writeFileSync("./测试.txt", "我测试过了,没有问题,上线吧");
fs.writeFileSync("./测试.txt", "我测试过了,没有问题,上线吧1");
fs.writeFileSync("./测试.txt", "我测试过了,没有问题,上线吧2");
fs.writeFileSync("./测试.txt", "我测试过了,没有问题,上线吧3");
console.log("当你看到这句话的时候我文件已经写入完成了");

什么是同步执行?

排队,一个任务接着一个任务的执行,上一个任务执行完毕,才能往下执行后面的任务,假如说上一个任务比较耗时,慢,那么后面的任务没法执行。

同步执行的缺点: 遇到比较耗时的任务时,会造成线程(任务)阻塞。

同步执行的优点: 能够及时的获取任务的执行结果。

异步写入文件

fs.writeFile("./data.txt", "我是异步写入的内容2", function (err) {
  if (err) {
    console.log(err);
  } else {
    console.log("写入成功");
  }
});


fs.writeFile("./data.txt", "我是异步写入的内容3", function (err) {
  if (err) {
    console.log(err);
  } else {
    console.log("写入成功");
  }
});


fs.writeFile("./data.txt", "我是异步写入的内容4", function (err) {
  if (err) {
    console.log(err);
  } else {
    console.log("写入成功");
  }
});

console.log("我是异步后面的代码");

什么是异步执行?

多个任务同时开始执行,上一个任务不用执行完毕,后面的任务直接也开始执行。 异步执行的缺点:不能够及时的获取任务的执行结果。 异步执行的优点:遇到比较耗时的任务时,不会造成线程(任务)阻塞。

2、文件内容追加

2-1、同步追加内容

// 路径必须存在 文件可以不存在
fs.appendFileSync("./.txt", "\n我测试过了,没有问题,上线吧1");

2-2、异步写入内容

fs.appendFile("./data.txt", "\nhhhhhhhhhhhh1", function (err) {
  console.log("添加成功");
});

3、文件夹创建

3-1、同步 创建文件夹

// 创建文件夹前面的路径一定要存在
fs.mkdirSync("./a");
fs.mkdirSync("./a/b");

3-2、异步创建文件夹

fs.mkdir("./a", function (err) {
//   // 创建完成的回调函数
  // console.log(err);
  if (!err) {
    fs.mkdir("./a/b", function (err) {
      if (err) console.log(err);
      else console.log("创建成功");
    });
  }
});

4、文件读取

4-1、同步读取文件

var text = fs.readFileSync("./.txt", { encoding: "utf8" });
console.log(text);

4-2、异步读取文件

fs.readFile("./.txt", { encoding: "utf8" }, function (err, data) {
  // data  Buffer 二进制缓冲区
  // 可通过 tostring 转化为正常的字符串 或者 添加配置项 { encoding: "utf8" }
  console.log(err, data);
});

5、获取文件状态

5-1、异步获取文件状态

// stat 状态
fs.stat("./data.txt", function (err, stats) {
  // directory 问件夹
  // no such file or directory  如果该路径下问件夹不存在或文件不存在就报错
  console.log(err, stats.isFile());
});

5-2、同步获取文件状态

console.log(fs.statSync("./data.txt").isFile());
console.log("aaaa");

6、文件删除

6-1、异步删除文件

fs.unlink("./测试.txt", function (err) {
  if (err) console.log("文件删除失败");
  else console.log("文件删除成功");
});

6-2、同步删除文件

fs.unlinkSync("./data.txt"); // 代码执行有错后续代码无法执行
console.log("文件删除成功");

7、删除文件夹

7-1、异步删除

fs.rmdir("./a/b", function (err) {
  // 删除文件空文件夹
  console.log(err);
});

7-2、同步删除

fs.rmdirSync("./a");

评论:

温馨提示

  • 请确保输入的邮箱地址正确,以便及时收到回复邮件
  • 评论内容需要合规合法,任何不符合国家法律和不健康的内容将会被删除