使用 Node.js 寫入檔案
寫入檔案
在 Node.js 中寫入檔案的最簡單方法是使用 fs.writeFile()
API。
const fs = require('node:fs');
const content = 'Some content!';
fs.writeFile('/Users/joe/test.txt', content, err => {
if (err) {
console.error(err);
} else {
// file written successfully
}
});
同步寫入檔案
或者,您可以使用同步版本的 fs.writeFileSync()
const fs = require('node:fs');
const content = 'Some content!';
try {
fs.writeFileSync('/Users/joe/test.txt', content);
// file written successfully
} catch (err) {
console.error(err);
}
您也可以使用由 fs/promises
模組提供的基於 Promise 的 fsPromises.writeFile()
方法
const fs = require('node:fs/promises');
async function example() {
try {
const content = 'Some content!';
await fs.writeFile('/Users/joe/test.txt', content);
} catch (err) {
console.log(err);
}
}
example();
默認情況下,如果檔案已經存在,此 API 會替換檔案的內容。
您可以通過指定標誌來修改默認行為
fs.writeFile('/Users/joe/test.txt', content, { flag: 'a+' }, err => {});
您可能會使用的標誌如下
標誌 | 描述 | 如果檔案不存在,則創建檔案 |
---|---|---|
r+ | 此標誌將檔案以讀取和寫入的方式打開 | ❌ |
w+ | 此標誌將檔案以讀取和寫入的方式打開,並將流的位置置於檔案的開頭 | ✅ |
a | 此標誌將檔案以寫入的方式打開,並將流的位置置於檔案的末尾 | ✅ |
a+ | 此標誌將檔案以讀取和寫入的方式打開,並將流的位置置於檔案的末尾 | ✅ |
- 你可以在fs 文件系統的檔案標誌中找到有關旗標的更多信息。
向文件追加內容
在不想用新內容覆蓋文件,而是想要追加內容時,追加到文件是很方便的。
範例
一個方便的方法是使用 fs.appendFile()
(以及它的 fs.appendFileSync()
對應物)向文件末尾追加內容。
const fs = require('node:fs');
const content = 'Some content!';
fs.appendFile('file.log', content, err => {
if (err) {
console.error(err);
} else {
// done!
}
});
帶有 Promises 的範例
這裡是一個使用 fsPromises.appendFile()
的範例
const fs = require('node:fs/promises');
async function example() {
try {
const content = 'Some content!';
await fs.appendFile('/Users/joe/test.txt', content);
} catch (err) {
console.log(err);
}
}
example();