在 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])
第一個引數用於指定我們正在寫入的檔案的位置。第二個引數是我們寫入指定位置檔案的資料。
編碼引數是可選的。
但是,編碼格式有 base64
、ASCII
、utf8
等多種格式。不指定此引數時,預設編碼格式為 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 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