fs
模組(檔案系統模組)提供了一個用於讀寫檔案的API。它是 Node.js 核心模組之一,允許你以非同步或同步的方式對檔案進行操作。
讀取
非同步讀取檔案,當檔案讀取完成時,呼叫回撥函式。
fs.readFile(path[, options], callback)
同步讀取檔案,返回檔案內容
fs.readFileSync(path[, options])
示例程式碼
const fs = require('fs');
fs.readFile('fs.txt', 'utf8', (err, data) => {
// 若讀取失敗,則 data 為 undefined
if (err) throw err;
// 若讀取成功,則 err 為 null
console.log(data);
})
console.log('這是個非同步讀取檔案的操作操作')
console.log(fs.readFileSync('fs.txt', 'utf8'));
// 非同步讀取使用回撥函式處理結果資料, 同步讀取,函式本身返回結果資料
寫入
非同步寫入檔案,當檔案寫入完成時,呼叫回撥函式。
fs.writeFile(file, data, [encoding], callback)
同步寫入檔案
fs.writeFileSync(file, data, [encoding])
示例程式碼
{
const writeData = 'fs 模組(檔案系統模組)提供了一個用於讀寫檔案的API。它是 Node.js 核心模組之一,允許你以非同步或同步的方式對檔案進行操作。'
fs.writeFile('fs.txt', writeData, 'utf-8', (err) => {
if (err) {
// 若讀取成功,則 err 為 null
console.error(err);
} else {
console.log('寫入成功啦!')
}
})
try{
console.log(fs.writeFileSync('fs.txt', fs.readFileSync('fs.txt', 'utf8') + '同步寫入', 'utf8'));
}catch (e){
console.error(e);
}
}
使用 fs.writeFileSync
方法同步寫入檔案時,如果操作成功,該方法不會返回任何值,如果寫入過程中發生錯誤,它會丟擲一個異常,因此我們透過try...catch
語句來處理 fs.writeFileSync
可能丟擲的異常
追加檔案
(fs.appendFile
和 fs.appendFileSync
)
-
fs.appendFile(file, data, [encoding], callback)
:非同步追加資料到檔案末尾。 -
fs.appendFileSync(file, data, [encoding])
:同步追加資料到檔案末尾。
刪除檔案
(fs.unlink
和 fs.unlinkSync
)
-
fs.unlink(path, callback)
:非同步刪除檔案。 -
fs.unlinkSync(path)
:同步刪除檔案。
重新命名檔案
(fs.rename
和 fs.renameSync
)
-
fs.rename(oldPath, newPath, callback)
:非同步重新命名檔案。 -
fs.renameSync(oldPath, newPath)
:同步重新命名檔案。
檢查檔案狀態
(fs.stat
和 fs.statSync
)
-
fs.stat(path, callback)
:非同步獲取檔案狀態(如大小、建立時間等)。 -
fs.statSync(path)
:同步獲取檔案狀態。
建立和讀取目錄
(fs.mkdir
, fs.readdir
, fs.rmdir
)
-
fs.mkdir(path[, options], callback)
:非同步建立目錄。 -
fs.readdir(path, callback)
:非同步讀取目錄內容。 -
fs.rmdir(path, callback)
:非同步刪除空目錄。
監控檔案變化
(fs.watch
)
-
fs.watch(filename[, options], listener)
:監控檔案的變化,當檔案被修改時觸發監聽器。 -