Node.js提供了一個類似UNIX(POSIX)標準的文件操作API,可以對於檔案進行同步與非同步的操作。
const fs = require("fs");
為了使用fs中的Method對檔案進行操作,首先先建立一個inpout.text,並將內容填入Node.js fs Test
讀取檔案的函數有非同步的fs.readFile()與同步的fs.readFileSync(),非同步的method最後有一個callback function,callback的輸入函數包含了錯誤訊息(err),可以利用此錯誤訊息提供是否讀取成功。
const fs = require("fs");
//非同步讀取
fs.readFile("./input.txt",(err,data) => {
if(err)
{
throw err;
}
console.log("非同步讀取 :" + data.toString());
});
//=======================================================
//同步讀取
const data = fs.readFileSync("./input.txt","UTF8");
console.log("同步讀取 :" + data);
console.log("執行完畢。");
輸出結果 :
由於readFile為非同步讀取,需要等到主執行序(stock)為空時才會將結果Console出來。
writeFile直接打開文件默認是"W"模式,如果檔案存在,此function寫入的內容會"覆蓋"原本的舊資料。
fs.writeFile(file, data[, options], callback)
const fs = require("fs");
console.log("準備寫入文件");
const inputData = "通過writeFile寫入的資料";
fs.writeFile("../JavaScript/input.txt",inputData,(err) => {
if(err)
{
console.log("寫入文件失敗");
}
console.log("寫入成功");
})
//================================================================
console.log("讀取txt資料")
fs.readFile("../JavaScript/input.txt",(err,data) => {
if(err)
{
throw err;
}
console.log("非同步讀取 :" + data.toString());
});
輸出結果 :
fs.open(path, flags[, mode], callback)
Flag | 描述 |
---|---|
r | 以讀取模式打開文件。若文件不存在則return錯誤。 |
rs | 以同步的方式讀取文件。 |
w | 以寫入模式打开文件,如果文件不存在則return錯誤。 |
wx | 類似 'w',但是如果文件路徑存在,則文件寫入失敗。 |
const fs = require("fs");
console.log("準備打開文件!");
fs.open('../JavaScript/input.txt', 'r+', function(err, fd) {
if (err) {
return console.error(err);
}
console.log("文件打开成功!");
});
fs.rename(oldPath, newPath, callback)
const fs = require("fs");
console.log("準備更改文件名稱")
fs.rename('../JavaScript/input.txt','../JavaScript/Reinput.txt',(err) => {
if(err)
{
throw err;
}
console.log("成功更改文件名稱")
});
結果 :
文件名稱由input.txt -> Reinput.txt
fs.unlink(path, callback)
const fs = require("fs");
console.log("準備刪除文件");
fs.unlink('../JavaScript/input.txt',(err) => {
if(err)
{
throw err;
}
console.log("刪除文件成功")
});
結果 :
原本建立的input.txt會被刪除。
參考資料 :
Node.js文件系統|菜鳥教成
File System