node fs 文件系统
1、浏览器js 不允许操作文件。
2、服务端node通过fs核心模块文件系统来操作。(增,删,改,查)
fs 重点操作
文件操作:读取、写入、删除、判断存在性,文件信息
目录操作:创建、删除、读取
fs 操作都有两个版本:
同步版本 (接力赛跑)
异步版本 (比赛跑)
1、读取文件
格式:readFile(异步)readFileSync (同步)
readFile(path,options,callback);
- path : 文件名/文件地址路径
- options :文件描述
- callback : 回调函数
异步语法:
fs.readFile("./data.json",“utf-8”,(err,data)=>{
// err 错误的信息
// data 读取到文件的信息
if(err){
console.log(err)
}else{
console.log(data)
}
})
同步语法:
let html = fs.readFileSync("./123.html",“utf-8”);
console.log(html);
同步和异步的区别
主要有如下两点:
获取结果的方式不同,异步是通过回调的参数获取的,而同步是通过方法返回值获取的
执行是顺序是不同的
2、覆盖式写文件
针对写文件,有两种方式:
覆盖式 — writeFile
追加式 — appendFile
3、追加式写文件
appendFile
appendFileSync
4、删除文件
unlink
unlinkSync
5、判断文件是否存在
exists
existsSync
6、获取文件信息
State
fs.stat(path)执行后,会将stats类的实例返回给其回调函数。可以通过stats类中的提供方法判断文件的相关属性。例如判断是否为文件:
文件 ---- stats.isFile() (如果是文件返回 true,否则返回 false。)
目录 ---- stats.isDirectory(如果是目录返回 true,否则返回 false。)
语法:
let news = fs.stat("./html", (err, stats) => {
if (err) throw err;
// 是否是文件
console.log(data.isFile());
// 是否是目录(目录 == 空文件夹) 是: true, 否:false
console.log(stats.isDirectory()); })
目录操作
目录(文件夹)有三大操作:
创建目录
删除目录
读取目录
1、创建目录
使用mkdir / mkdirSync方法。
是make directory的简写。命令行中也有这个命令。
注意:
1、创建目录时先判断目录是否存在,如果不存在在新创建目录。
2、existsSync针对文件和目录都可以进行判断的。
语法:
if(fs.existsSync("./css")){
console.log(“该文件已存在!”);
}else{
console.log(“开始创建!”);
fs.mkdirSync("./css");
console.log(“创建成功!”);
}
Path路径模块
path 模块提供用于处理文件路径和目录路径
使用:
const path = require(‘path’);
path.join([…paths])
- …paths 路径片段
path.join() 方法以分隔符(/)将所有给定的path 片段连接在一起,生成规范化的路径。