1. 同步异步写入
fs模块可以实现与硬盘的交互,例如:文件的创建、删除、重命名、移动,还有文件内容的写入、读取,以及文件夹的相关操作
//异步写入
const fs=require('fs');
fs.writeFile('./file.txt','this fs File',err=>{
//err的值 写入失败:错误对象;写入成功:null
if(err){
console.log('写入失败');
return;
}
console.log("写入成功");
}); //写入文件,如果文件不存在则会自动创建文件
//同步写入
const fs=require('fs');
fs.writeFileSync("./data.txt", "test"); //文件名,文件内容
2. 文件追加内容写入
//异步
fs.appendFile("./data.txt", "文件追加写入", (err) => {
// err的值 写入失败:错误对象;写入成功:null
if (err) {
console.log("写入失败");
return;
}
console.log("文件追加写入成功");
});
//同步
fs.appendFileSync("./data.txt", "文件追加写入成功"); //文件名,文件内容
fs.writeFile('./file.txt','追加内容',{flag:'a'},err=>{
//err的值 写入失败:错误对象;写入成功:null
if(err){
console.log('写入失败');
return;
}
console.log("写入成功");
});
3. 流式写入(适合写入频次较高的场景)
const ws = fs.createWriteStream("./stream.txt");
ws.write("标题一\r\n");
ws.write("标题二\r\n");
ws.write("标题三\r\n");
ws.write("标题四\r\n");
//\r\n换行
ws.close();
4 . 文件读取
//语法:文件路径,选项配置(可选),回调函数
//异步
fs.readFile('./file.txt',(err,data)=>{
//err的值 读取失败:错误对象;读取成功:null
if(err){
console.log('读取失败');
return;
}
console.log("读取成功",data);//data是个buffer 使用data.toString()转成字符串
});
//同步
fs.readFileSync("./data.txt");
console.log("读取内容",data.toString());
//文件流式读取
const rs = fs.createReadStream("../测试.mp4");
rs.on("data", (chunk) => {
console.log(chunk);
});
rs.on("end", () => {
console.log("读取完成");
});
5. 文件重命名
//同步 语法:fs.rename(oldPath, newPath, callback);
fs.rename("./data.txt", "./data-1.txt", (err) => {
// err的值 重命名失败:错误对象;重命名成功:null
if (err) {
console.log("重命名失败");
return;
}
console.log("文件重命名成功");
});
//异步 语法:fs.renameSync(oldPath, newPath, callback);
6.删除
//异步 语法: fs.unlink(path, callback)或者fs.rm(path, callback)
fs.unlink("./data.txt", (err) => {
// err的值 删除失败:错误对象;删除成功:null
if (err) {
console.log("删除失败");
return;
}
console.log("删除成功");
});
//同步 语法:fs.unlinkSync(path)或者fs.rmSync(path)