fs

fs(全称File System,中文译为:文件系统)

fs模块可以实现与硬盘的交互,例如:文件的创建、删除、重命名、移动,还有文件内容的写入、读取,以及文件夹的相关操作。

文件写入

方法 说明
writeFile 异步写入
writeFileSync 同步写入
appendFile / appendFileSync 追加写入
creatWriteStream 流式写入

writeFile

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

参数说明:

  • file:文件名
  • data:待写入的数据
  • options:选项设置(可选)
  • callback:写入回调

返回值:undefined

代码示例:

1/**
2 * 需求:
3 * 新建一个文件,座右铭.txt,写入内容:三人行,则必有我师焉。
4 */
5
6// 1.导入fs模块
7const fs = require("fs");
8const path = require("path");
9
10// 2.创建文件
11//会覆盖原来的内容,追加appendFile
12
13let filepath = path.join(__dirname, "座右铭.txt");
14
15fs.writeFile(filepath, "三人行,则必有我师焉!", "utf-8", (err) => {
16  if (err) {
17    console.log(err);
18    return;
19  }
20  console.log("写完了!");
21});

文件读取

同步读取

1//同步读取
2const fs = require('fs');
3const path = require('path');
4//获取被读取文件的路径
5let filepath = path.join(__dirname, 'demo02.txt');
6
7let ret = fs.readFileSync(filepath,'utf-8');
8console.log(ret); //<Buffer e8 8b 8f e4 b8 9c e6 97 ad>  是node引擎存储文件数据的一种格式,以十六进制的方式存储
9
10//通过toString()转成字符串就是我们能看懂的信息了
11console.log(ret.toString()); //苏东旭
12
13
14//同步sync:任务按顺序执行,执行完一个任务后再去执行另外一个任务
15//异步async:有回调函数的几乎都是异步。如ajax请求、事件、定时器

异步读取

1//异步读取
2const fs = require('fs');
3const path = require('path');
4//获取被读取文件的路径
5let filepath = path.join(__dirname, 'demo02.txt');
6
7fs.readFile(filepath,'utf-8',(err,data)=>{
8  //err 错误
9  //data 读取到的数据
10  if(err){
11    console.log(err);
12    return;
13  }
14  console.log(data)
15});

文件移动与重命名

文件删除

文件夹操作