Node.jsでのファイルの書き込み
ファイルの書き込み
Node.jsでファイルに書き込む最も簡単な方法は、fs.writeFile() APIを使用することです。
const = ('node:fs');
const = 'Some content!';
.('/Users/joe/test.txt', , => {
if () {
.();
} else {
// file written successfully
}
});
同期的にファイルを書き込む
代わりに、同期版のfs.writeFileSync()を使用することもできます。
const = ('node:fs');
const = 'Some content!';
try {
.('/Users/joe/test.txt', );
// file written successfully
} catch () {
.();
}
また、fs/promisesモジュールが提供するPromiseベースのfsPromises.writeFile()メソッドを使用することもできます。
const = ('node:fs/promises');
async function () {
try {
const = 'Some content!';
await .('/Users/joe/test.txt', );
} catch () {
.();
}
}
();
デフォルトでは、このAPIはファイルが既に存在する場合、ファイルの内容を置き換えます。
フラグを指定することで、このデフォルトの動作を変更できます。
fs.writeFile('/Users/joe/test.txt', content, { : 'a+' }, => {});
よく使用されるフラグは次のとおりです。
| フラグ | 説明 | ファイルが存在しない場合に作成されます。 |
|---|---|---|
r+ | このフラグはファイルを読み込みおよび書き込み用に開きます。 | ❌ |
w+ | このフラグはファイルを読み込みおよび書き込み用に開き、ストリームをファイルの先頭に配置します。 | ✅ |
a | このフラグはファイルを書き込み用に開き、ストリームをファイルの末尾に配置します。 | ✅ |
a+ | このフラグはファイルを読み込みおよび書き込み用に開き、ストリームをファイルの末尾に配置します。 | ✅ |
- フラグに関する詳細情報は、fsのドキュメントで確認できます。
ファイルにコンテンツを追記する
ファイルへの追記は、新しいコンテンツでファイルを上書きするのではなく、追加したい場合に便利です。
例
ファイルの末尾にコンテンツを追記するための便利なメソッドはfs.appendFile()です(およびその対応するfs.appendFileSync())。
const = ('node:fs');
const = 'Some content!';
.('file.log', , => {
if () {
.();
} else {
// done!
}
});
Promiseの例
以下はfsPromises.appendFile()の例です。
const = ('node:fs/promises');
async function () {
try {
const = 'Some content!';
await .('/Users/joe/test.txt', );
} catch () {
.();
}
}
();