共计 1187 个字符,预计需要花费 3 分钟才能阅读完成。
fs 文件系统操作模块
注:fs 模块 => 包括文件目录的创建、删除、查询以及文件的读取、写入等;
在 fs 模块中,所有的方法都分为同步和异步两种实现,具有 sync 后缀的方法为同步方法,不具有 sync 后缀的方法为异步方法
文件
- 读文件 异步 fs.readFile(路径,转码规则,(err,data)=>{})
- 同步 let res = fs.readFileSync(路径,转码规则)
- 写文件 异步 fs.writeFile(路径,你要写的内容,(err)=>{}) 覆盖式写入
- 同步 fs.writeFileSync(路径,你要写的内容) 覆盖式写入
- 写文件 异步 fs.appendFile(路径,你要写的内容,(err)=>{}) 追加式写入
- 同步 fs.appendFileSync(路径,你要写的内容) 追加式写入
- 删除 异步 fs.unlink(路径,(err)=>{})
- 同步 fs.unlinkSync(路径)
- 拷贝文件 异步 fs.copyFile(原路径,新路径,(err)=>{})
- 同步 fs.copyFileSync(原路径,新路径)
- 重命名 异步 fs.rename(原路径,新路径,(err)=>{})
- 同步 fs.renameSync(原路径,新路径)
文件夹
- 读取文件夹 异步 fs.readdir(路径,(err,data)=>{})
- 同步 let res = fs.readdirSync(路径)
- 创建文件夹 异步 fs.mkdir(路径,(err)=>{})
- 同步 fs.mkdirSync(路径)
- 删除空文件夹 异步 fs.rmdir(路径,(err)=>{})
- 同步 fs.rmdirSync(路径)
判断文件或文件夹是否存在
- 只有一个同步 fs.existsSync(路径) 存在返回 true 不存在返回 false
let fs = require("fs");
let res = fs.existsSync("./dist/2.js");
console.log(res)
获取文件或文件夹的信息
- 异步 fs.stat(路径,(err,data)=>{})
- 同步 let res = fs.statSync(路径)
流式读取
- 1、创建可读流
- 2、创建一个可写流
- 3、pipe 输出
let fs = require("fs");
let rs = fs.createReadStream("./src/1.mp4");
let ws = fs.createWriteStream("./src/2.mp4");
- rs.pipe(ws)
- 读一点写一点
- data 事件 当数据改变的时候会被触发
rs.on("data",(thunk)=>{console.log(thunk);
if(!ws.write(thunk)){rs.pause() // 暂停
}
})
- 写完之后会触发 drain
ws.on("drain",()=>{rs.resume(); // 恢复
})
- 读完 end 事件
rs.on("end",()=>{console.log("成功")
})
正文完