fs模块的三个常用方法
1.fs.readFile() -- 读文件
2.fs.writeFile() -- 写文件
3.fa.stat() -- 查看文件信息
fs模块不同于其它模块的地方是它有异步和同步两种方法,其它模块只有异步方法,异步和同步的方法名区别在于同步方法在异步的方法名后面加了"Sync"
1.fs.readFile()
//使用ES的严格模式
"use strict";
//引入fs模块
const fs = require("fs");
fs.readFile("test.txt", "utf-8", function (err, data) {
//判断文件是否正确读取,err存储着读取时的错误信息
if(err){
console.log(err);
} else {
//正确读取时打印读取出来的信息
console.log(data);
}
});
注:不加第二个参数"utf-8"时data输出的将是一个Buffer对象
可以将Buffer转换成String:data.toString()
String转换成Buffer对象:Buffer.from(data, "uft-8");
test.txt与该js脚本是在同一文件夹下的
上面是异步读取文件的方式,下面是同步读取文件的方式
//判断同步读取是否出错
try{
let file = fs.readFileSync("test.txt", "utf-8");
console.log(file);
} catch( err ) {
//如果出错就打印出出错信息
console.log(err);
}
2.fs.writeFile()
"use strict";
const fs = require("fs");
fs.writeFile("test.txt", "你要写入的信息", function(err) {
if(err) {
console.log(err);
} else {
console.log("Write OK!");
}
});
同步写入文件方法与readFile类似,这里就不赘述了
3.fs.stat()
"use strick";
const fs = require("fs");
fs.stat("test.txt", function(err, stat){
if(err) {
console.log(err);
} else {
console.log("是否是文件:" + stat.isFile());
console.log("是否是文件夹:" + stat.isDirectory() );
if( stat.isFile() ) {
//输出文件大小
console.log("文件的大小是:" + stat.size );
//输出文件的创建日期
console.log("文件的创建日期是:" + stat.birthtime );
//输出文件的最近一次修改的日期
console.log("文件的最近一次修改日期是:" + stat.mtime );
}
}
});
同步方法与readFile同步方法类似,不再赘述
不过stat同步方法与异步方法有一些不同的地方
1.stat异步方法使用的时间是你现在所在时区的时间
2.stat同步方法使用的时间是中时区的时间