Skip to content

Node.jsでのファイル読み込み

Node.jsでファイルを読み込む最も簡単な方法は、fs.readFile()メソッドを使用することです。ファイルパス、エンコーディング、ファイルデータ(とエラー)を使って呼び出されるコールバック関数を渡します。

javascript
const fs = require('node:fs')

fs.readFile('/Users/joe/test.txt', 'utf8', (err, data) => {
  if (err) {
    console.error(err)
    return
  }
  console.log(data)
})

あるいは、同期版のfs.readFileSync()を使用することもできます。

javascript
const fs = require('node:fs')

try {
  const data = fs.readFileSync('/Users/joe/test.txt', 'utf8')
  console.log(data)
} catch (err) {
  console.error(err)
}

fs/promisesモジュールで提供されている、PromiseベースのfsPromises.readFile()メソッドを使用することもできます。

javascript
const fs = require('node:fs/promises')

async function example() {
  try {
    const data = await fs.readFile('/Users/joe/test.txt', { encoding: 'utf8' })
    console.log(data)
  } catch (err) {
    console.log(err)
  }
}

example()

fs.readFile()fs.readFileSync()fsPromises.readFile()の3つはすべて、データを返す前にファイルの全内容をメモリに読み込みます。

これは、大きなファイルの場合、メモリ消費量とプログラムの実行速度に大きな影響を与えることを意味します。

この場合、ストリームを使用してファイルの内容を読み込む方が良い選択肢です。