在 Node JS 中寫入檔案

Isaac Tony 2023年10月12日
  1. 在 NodeJS 中使用 fs.writeFile() 寫入資料
  2. 在 NodeJS 中使用 fs.appendFile() 將內容寫入檔案
在 Node JS 中寫入檔案

使用檔案是每個開發人員的基本技能,無論你使用哪種程式語言。在 Node js 中,對檔案的處理主要是通過 fs 模組,它對檔案進行各種操作。

由於 fs 模組存在於標準庫中,我們可以通過簡單地要求它在我們的程式中使用它。

const fs = require('fs')

fs 模組提供的預設非同步方法之一是 fs.writeFile() 將任何型別的資料寫入檔案的方法。此方法接受四個引數,如此處所示。

在 NodeJS 中使用 fs.writeFile() 寫入資料

var fs = require('fs');
fs.writeFile(filepath, data, [encoding], flag, [callback])

第一個引數用於指定我們正在寫入的檔案的位置。第二個引數是我們寫入指定位置檔案的資料。

編碼引數是可選的。

但是,編碼格式有 base64ASCIIutf8 等多種格式。不指定此引數時,預設編碼格式為 utf8

flag 引數也是一個可選引數,它指定我們希望對目標檔案執行的寫入操作的種類。

預設的 flag 是 w,代表寫作。我們可能使用的其他一些標誌是用於讀取和寫入的 r+,用於將流定位在檔案開頭的 w+ 以及讀取和寫入。

最後,我們還有 callback 引數。一旦 fs.writeFile() 方法被執行,這個函式就會被呼叫。

如果方法失敗,它還負責丟擲錯誤。在下面的示例中,我們將一些文字寫入名為 tesla.txt 的文字檔案。

請注意,我們尚未建立檔案 tesla.txt;但是,當使用 fs.writeFile() API 寫入不存在的檔案時,將自動建立該檔案。

const fs = require('fs');

const text = 'Tesla is largest EV manufacturer';

fs.writeFile('tesla.txt', text, (err) => {
  if (err) return console.error(err);
  console.log('File successfully written !');
});

由於檔案 tesla.txt 不存在,因此建立了程式碼示例。

但是,當寫入存在的檔案時,我們正在寫入的新內容將覆蓋預先存在的內容。

在下面的示例中,我們將向我們建立的 tesla.txt 檔案新增新的文字內容。

const fs = require('fs');

const text = 'Lucid Motors is a top EV manufacturer !';

fs.writeFile('tesla.txt', text, (err) => {
  if (err) return console.error(err);
  console.log('File successfully written !');
});

輸出:

Lucid Motors is a top EV manufacturer !

正如 test.txt 檔案中所顯示的,初始內容已被新內容覆蓋。如果我們寫一個包含一些內容的檔案,我們可以指定附加標誌 a

這個標誌允許我們在檔案末尾寫一些已經有內容的內容。

const fs = require('fs');

const text = 'Tesla is a giant though!';

fs.writeFile('tesla.txt', text, {flag: 'a'}, (err) => {
  if (err) return console.error(err);
  console.log('File successfully written !');
});

輸出:

Lucid Motors is a top EV manufacturer !Tesla is a giant though!

或者,我們也可以使用 fs.appendFile() 將內容寫入已經包含某些內容的檔案。

在 NodeJS 中使用 fs.appendFile() 將內容寫入檔案

const fs = require('fs');

const text = 'Tesla is a giant though!';

fs.appendFile('tesla.txt', text, (err) => {
  if (err) return console.error(err);
  console.log('File successfully written !');
});

輸出:

Lucid Motors is a top EV manufacturer !Tesla is a giant though!

fs 模組 還提供了一個非同步方法 fs.writeFileSync(),我們也可以使用它來寫入 Node js 中的檔案。如果我們正在寫入的檔案不存在,此方法將建立一個新檔案。

當寫入包含某些內容而不新增附加標誌的檔案時,唯一內容也將覆蓋舊內容。

const fs = require('fs')
const content = 'Tesla is the largest EV manufacturer!';

try {
  fs.writeFileSync('tesla.txt', content)

} catch (err) {
  console.error(err)
}

輸出:

Tesla is the largest EV manufacturer!
作者: Isaac Tony
Isaac Tony avatar Isaac Tony avatar

Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.

LinkedIn

相關文章 - Node.js File