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();