读取文件
1.同步方式
let result = fs.readyFileSync(‘文件名’,’utf-8’);
**2.异步方式=**
**写入文件**

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

1.覆盖式写入

1
fs.writeFileSync("文件名", "内容");

2.追加式写入

1
fs.appendFileSync("文件名", "内容");

3.删除文件

1
fs.unlinkSync("文件名");

4.复制文件

1
fs.copyFileSync('源文件名','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.存在返回 true,不存在返回 false

1
let isFile = fs.existsSync("文件名");

2.存在什么都不发生,不存在报错 => 尽量通过 try{}catch{}捕获错误

1
let isFile = fs.accessSync("文件名");

检查是文件还是目录

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

流式拷贝

1
2
3
4
5
6
7
8
9
10
11
小文件直接copy, 大文件尽量用流式读写;
const fs = require("fs");
//1.创建可读流
let read = fs.createReadStream("要拷贝的文件名");
//2.创建可写流
let write = fs.createWriteStream("拷贝后的文件名");
//3.管道输出
read.pipe(write);
可读流监听事件;
rs.on("data", (chunk) => {});
rs.on("end", () => {});