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.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 () {
    .();
  }
}

();