一、寫(xiě)入文件操作
異步寫(xiě)入:writeFile()
同步寫(xiě)入:writeFileSync()
const fs = require("fs");
fs.writeFile("目標(biāo)文件路徑", "要寫(xiě)入的內(nèi)容", err => {
if(err){
console.log(err);
return;
}
console.log("寫(xiě)入成功!");
})
二、文件追加寫(xiě)入操作
異步追加寫(xiě)入:appendFile()
同步追加寫(xiě)入:appendFileSync()
方式一(appendFile):
const fs = require("fs");
fs.appendFile("目標(biāo)文件路徑", "要追加寫(xiě)入的內(nèi)容", err => {
if(err){
console.log(err);
return;
}
console.log("追加寫(xiě)入成功!");
})
方式二(writeFile):
const fs = require("fs");
fs.writeFile("目標(biāo)文件路徑", "要追加寫(xiě)入的內(nèi)容", { flag: "a" }, err => {
if(err){
console.log(err);
return;
}
console.log("追加寫(xiě)入成功!");
})
三、文件流式寫(xiě)入操作
fs.createWriteStream( path [, options ] )
- 程序打開(kāi)一個(gè)文件是需要消耗資源的 ,流式寫(xiě)入可以減少打開(kāi)關(guān)閉文件的次數(shù)。
- 流式寫(xiě)入方式適用于大文件寫(xiě)入或者頻繁寫(xiě)入的場(chǎng),writeFile 適合于寫(xiě)入頻率較低的場(chǎng)景。
// 導(dǎo)入 fs 模塊
const fs = require("fs");
// 創(chuàng)建寫(xiě)入流對(duì)象
const ws = fs.createWriteStream("目標(biāo)文件路徑");
// write 寫(xiě)入
ws.write("我喜歡你臉紅紅的樣子,");
ws.write("更喜歡你氣喘吁吁的樣子。");
// 關(guān)閉寫(xiě)入流通道
ws.close();
四、文件讀取操作
異步讀取:readFile()
同步讀?。簉eadFileSync()
- 通過(guò)程序從文件中取出其中的數(shù)據(jù)
const fs = require("fs");
fs.readFile("目標(biāo)文件路徑", (err, data) => {
if(err){
console.log(err)
return;
}
// 讀取成功后的內(nèi)容
console.log(data.toString())
})
應(yīng)用場(chǎng)景: 電腦開(kāi)機(jī)、程序運(yùn)行、編根器打開(kāi)文件、查看圖片、放視頻、放音樂(lè)、Git查看日志、上傳文件、查找聊天記錄等。
五、文件流式讀取操作
const fs = requrie("fs");
// 創(chuàng)建讀取流對(duì)象
const rs = fs.createReadStream("目標(biāo)文件路徑");
// 綁定 data 事件,chunk 表示文件塊兒
rs.on("data", chunk => {
console.log(chunk);
})
// end 可選事件
rs.on("end", () => {
console.log("文件讀取成功!");
})
六、文件復(fù)制操作
- 方式一
// 先讀取文件,再把讀取到的內(nèi)容寫(xiě)入到另一個(gè)文件中。
const fs = require("fs");
const data = fs.readFileSync("源文件路徑");
fs.writeFileSync("目標(biāo)文件路徑", data);
- 方式二(推薦)
// 通過(guò)流式操作,占用內(nèi)存空間少
const fs = requrie("fs");
const rs = fs.createReadStream("源文件路徑");
const ws = fs.createWriteStream("目標(biāo)文件路徑");
// 綁定 data 事件
fs.on("data", chunk => {
ws.write(chunk);
})
七、文件重命名和移動(dòng)操作
異步操作:rename(oldPath, newPath, callback)
同步操作:renameSync(oldPath, newPath)
// 通過(guò) rename 完成文件重命名
const fs = require("fs");
fs.rename("./index.html", "./main.html", err => {
if(err){
console.log(err);
return;
}
console.log("文件重命名成功!");
})
// 通過(guò) rename 完成文件移動(dòng)
const fs = require("fs");
fs.rename("./index/index.html", "./main/index.html", err => {
if(err){
console.log(err);
return;
}
console.log("文件移動(dòng)成功!");
})
八、文件刪除操作
異步刪除:unlink(path, callback)
同步刪除:unlinkSync(path)
- 方式一
const fs = requrie("fs");
fs.unlink("要?jiǎng)h除的文件路徑", err => {
if(err){
console.log(err);
return;
}
console.log("文件刪除成功!");
})
異步刪除:rm(path, callback)
同步刪除:rmSync(path)
- 方式二
const fs = requrie("fs");
fs.rm("要?jiǎng)h除的文件路徑", err => {
if(err){
console.log(err);
return;
}
console.log("文件刪除成功!");
})
九、文件夾操作
創(chuàng)建文件夾:mkdir()
const fs = require("fs");
fs.mkdir("要?jiǎng)?chuàng)建的文件夾", err => {
if(err){
console.log(err);
return;
}
console.log("文件夾創(chuàng)建成功!");
})
遞歸創(chuàng)建文件夾(多級(jí)文件夾目錄):
const fs = require("fs");
fs.mkdir("./a/b/c", { recursive: true }, err => {
if(err){
console.log(err);
return;
}
console.log("文件夾創(chuàng)建成功!");
})
讀取文件夾:readdir()
const fs = require("fs");
fs.readdir("./index", (err, data) => {
if(err){
console.log(err);
return;
}
// 獲取目標(biāo)文件夾當(dāng)中資源名稱(chēng)列表
console.log(data);
})
刪除文件夾:rmdir()文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-625969.html
const fs = require("fs");
fs.rmdir("./index", err => {
if(err){
console.log(err);
return;
}
console.log("刪除成功!");
})
遞歸刪除文件夾(多級(jí)文件夾目錄):文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-625969.html
const fs = require("fs");
fs.rm("./index", { recursive: true }, err => {
if(err){
console.log(err);
return;
}
console.log("刪除成功!");
})
十、查看資源信息
const fs = require("fs");
// stat status縮寫(xiě) 狀態(tài)
fs.stat("./index/index.html", (err, data) => {
if(err){
console.log(err);
return;
}
console.log(data); // 獲取文件資源信息
console.log(data.isFile()); // true 是否為文件
console.log(data.isDirectory()); // false 是否為文件夾
})
到了這里,關(guān)于Node.js-fs模塊文件創(chuàng)建、刪除、重命名、文件內(nèi)容的寫(xiě)入、讀取以及文件夾的相關(guān)操作的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!