fs 是file syetem(文件系统)的缩写;
所有的文件系统操作都有异步和同步两种形式。我们一般会采用异步的操作;最后一个参数都是完成时回调函数;
异步函数的第一个参数都会保留给异常,如果异常不为null或者undefined ,就会抛出异常,
fs.readFile() 文件读取方法;
异步
//引入 fs 内置模块
const fs = require("fs");
//fs的文件读取方法 异步
fs.readFile("./node1.js",(err,data)=>{
//如果有异常 抛异常;
if(err) throw err;
console.log(data.toString("base64"));
});
会得到一个buffer 对象 ;
<Buffer 63 6f 6e 73 74 20 66 73 20 3d 20 72 65 71 75 69 72 65 28 22 66 73 22 29 3b 0a 0a 66 73 2e 72 65 61 64 46 69 6c 65 28 22 2e 2f 6e 6f 64 65 31 2e 6a 73 ... >
利用toString方法就可以得到这个文件的 正常内容了;
同步:
//同步写法, fs的 参数 第二个是文件的输出格式;
const data=fs.readFileSync("./node1.js","utf-8");
console.log(data)
同步输出会比 异步的输出在前面;
文件写入
//引入 fs 内置模块
const fs = require("fs");
// 文件的写入方法,第一个参数是写入的位置,第二个参数是内容;三是编码方式,四是回调函数
fs.writeFile("./text","this is a node txt",{encoding:"utf-8"},(err)=>{
if(err) throw err;
//完成以后输出内容
console.log("done!")
})
也可以把 内容换成buffer 对象;
查询文件的信息
//引入 fs 内置模块
const fs = require("fs");
//查询文件的 信息;
fs.stat("./node1.js",(err,stats)=>{
if(err) throw err;
//是文件?
console.log(stats.isFile());
//还是文件夹?
console.log(stats.isDirectory());
//把该文件所有的信息全部打印出来;
console.log(stats);
})
修改文件名字
//引入 fs 内置模块
const fs = require("fs");
//修改文件的名字,包括后缀名 ,第一个参数传 目标文件;第二个参数是要修改成的文件名字,第三个是回调函数
fs.rename("./text","xx.txt",(err,data)=>{
if(err) throw err;
console.log("done");
})
删除文件
//引入 fs 内置模块
const fs = require("fs");
//删除文件
fs.unlink("./xx.txt",(err)=>{
if(err) throw err;
console.log("done");
})
读取文件夹内的文件名字;
//引入 fs 内置模块
const fs = require("fs");
//读取文件夹内的文件名字;
fs.readdir("./",(err,files)=>{
if(err) throw err;
console.log(files);
})
创建一个文件夹
//引入 fs 内置模块
const fs = require("fs");
//创建一个文件夹
fs.mkdir("test",(err,data)=>{
if(err) throw err;
console.log("done!");
})
删除一个文件夹
//引入 fs 内置模块
const fs = require("fs");
//删除一个文件夹
fs.rmdir("./test",(err,data)=>{
if(err) throw err;
console.log("done!");
})
监视文件变化
//引入 fs 内置模块
const fs = require("fs");
//监视 文件变化 recursive:true 是递归监视 文件夹下的所有子文件或者文件夹
//
fs.watch("./",{recursive:true},(eventtype,filename)=>{
// eventtype是指改变的类型,filename改变的 目标文件名
console.log(eventtype,filename)
})