Nodejs 的 fs 模組

XiSoil發表於2024-08-20

檔案讀寫

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.appendFilefs.appendFileSync)

  • fs.appendFile(file, data, [encoding], callback):非同步追加資料到檔案末尾。

  • fs.appendFileSync(file, data, [encoding]):同步追加資料到檔案末尾。

刪除檔案

(fs.unlinkfs.unlinkSync)

  • fs.unlink(path, callback):非同步刪除檔案。

  • fs.unlinkSync(path):同步刪除檔案。

重新命名檔案

(fs.renamefs.renameSync)

  • fs.rename(oldPath, newPath, callback):非同步重新命名檔案。

  • fs.renameSync(oldPath, newPath):同步重新命名檔案。

檢查檔案狀態

(fs.statfs.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):監控檔案的變化,當檔案被修改時觸發監聽器。

相關文章