fs模块
//写入文件
//异步写入文件
const fs=require("fs");
fs.writeFile("1.txt","温故而知新",err=>{
if(err){
console.log("写入失败");
return;
}
console.log("写入成功");
});
//同步写入
fs.writeFileSync("1.txt","可以为师矣")
//文件追加
//文件追加写入
const fs=require("fs");
fs.appendFile("1.txt","温故而知新",err=>{
if(err){
console.log("写入失败");
return;
}
console.log("写入成功");
})
//同步追加
fs.appendFileSync("1.txt","可以为师矣")
//writeFile追加
fs.writeFile("1.txt","温故而知新",{flag:"a"},err=>{
if(err){
console.log("写入失败");
return;
}
console.log("写入成功");
})
//文件流式写入
//第一步导入fs
const fs=require("fs");
//第二步创建写入流对象
const ws=fs.createWriteStream("1.txt");
//第三步write
ws.write("三人行\r\n");//\r\n代表换行
ws.write("必有我师焉");
//第四步关闭(可有可无)
ws.close();
//读取文件
//异步读取
const fs=require("fs")
fs.readFile("1.txt","温故而知新",(err,data)=>{
if(err){
console.log("写入失败");
return;
}
console.log(data.tostring());//把Buffer转换为字符串
})
//同步读取
let data=fs.readFileSync("1.txt","可以为师矣")
console.log(data.tostring())
//文件流式读取
//第一步导入fs
const fs=require("fs");
//第二步//创建写入流对象
const rs=fs.createReadStream("1.txt");
//第三步绑定data事件 chunk块
rs.on("data",chunk=>{
console.log(chunk.length);
})
//第四步关闭(可有可无)
rs.on("end",()=>{
console.log("读取完成");
})
//文件复制
//方式一readFile
const fd=require("fs");
let data=fs.readFileSync("1.txt");
fs.writeFileSync("12.txt",data);
//方式二流式操作
const fd=require("fs");
let rs=fs.createReadStream("1.txt");
const ws=fs.createWriteStream("12.txt");
//绑定data事件
rs.on("data",chunk=>{
ws.write(chunk)})
//文件的重命名和移动
fs.rename("1.txt","2.txt",err=>{
if(err){
console.log("操作失败");
return;
}
console.log("操作成功");
})
//文件的删除
const fs=require("fs");
//调用unlink方法
fs.unlink("1.txt",err=>{
if(err){
console.log("删除失败");
return;
}
console.log("删除成功");
});
//调用rm方法
fs.rm("1.txt",err=>{
if(err){
console.log("删除失败");
return;
}
console.log("删除成功");
});
//文件夹操作
const fs=require("fs");
//创建文件夹mkdir
fs.mkdir("1.txt",err=>{
if(err){
console.log("创建失败");
return;
}
console.log("创建成功");
});
//递归创建
fs.mkdir("./a/b/c",{recursive:true},err=>{
if(err){
console.log("创建失败");
return;
}
console.log("创建成功");
})
//读取文件夹
const fs=require("fs")
fs.readdir("./",(err,data)=>{
if(err){
console.log("读取失败");
return;
}
console.log(data);
});
//删除文件夹
fs.rmdir(./html,err=>{
if(err){
console.log("删除失败");
return;
}
console.log(删除成功);
});
//删除递归文件夹(不建议使用)
fs.rmdir(./a,{recursive:true},err=>{
if(err){
console.log("删除失败");
return;
}
console.log(删除成功);
});
//建议使用
fs.rm(./a,{recursive:true},err=>{
if(err){
console.log("删除失败");
return;
}
console.log(删除成功);
});
//查看资源状态
//stat 方法 status缩写状态
const fs=require("fs");
fs.stat('./1.txt',(err,data)=>{
if(err){
console.log('操作失败');
return;
}
//判断是否是文件
console.log(data.isFile());
//判断是否是文件夹
console.log(data.isDirectory());
});
注意://__dirname,不会根据工作目录的变化而变化
const fs=require("fs")
fs.writeFileSync(__dirname + '/index.txt','love')