JavaScript 逆引き集 | fs.readFile(Node)

JavaScript JavaScript
スポンサーリンク

fs.readFile(Node.js) — const data = fs.readFileSync('a.txt','utf8')

Node.js でファイルを読み込むときに使うのが fs モジュールです。
fs.readFileSync は「同期的にファイルを読み込む」関数で、簡単にテキストファイルの内容を取得できます。初心者がまず覚えるべきは「テキストファイルを開いて中身を文字列として使う」ことです。


基本のコード例(同期読み込み)

const fs = require('fs');

// ファイルを同期的に読み込む
const data = fs.readFileSync('a.txt', 'utf8');

console.log(data);
JavaScript
  • require('fs') → Node.js 標準のファイル操作モジュールを読み込む。
  • fs.readFileSync(path, encoding) → ファイルを読み込み、文字列として返す。
  • 'utf8' → 文字コードを指定。日本語を扱うときは必須。

非同期読み込み(おすすめ)

同期処理は「読み込みが終わるまでプログラムが止まる」ため、大きなファイルでは不便です。
通常は 非同期版 fs.readFile を使います。

const fs = require('fs');

fs.readFile('a.txt', 'utf8', (err, data) => {
  if (err) {
    console.error("読み込みエラー:", err);
    return;
  }
  console.log("ファイル内容:", data);
});
JavaScript
  • 非同期版: 他の処理を止めずにファイルを読み込める。
  • コールバック: 読み込み完了後に呼ばれる関数。

よく使うテンプレート集

JSONファイルを読み込む

const fs = require('fs');
const json = fs.readFileSync('config.json', 'utf8');
const config = JSON.parse(json);

console.log(config.dbHost);
JavaScript

行ごとに処理する

const fs = require('fs');
const text = fs.readFileSync('a.txt', 'utf8');
const lines = text.split('\n');

lines.forEach((line, i) => {
  console.log(`${i+1}: ${line}`);
});
JavaScript

try-catchでエラー処理

try {
  const data = fs.readFileSync('missing.txt', 'utf8');
  console.log(data);
} catch (err) {
  console.error("ファイルが見つかりません:", err.message);
}
JavaScript

例題: 簡易ログビューア

const fs = require('fs');

try {
  const log = fs.readFileSync('app.log', 'utf8');
  console.log("=== ログ内容 ===");
  console.log(log);
} catch {
  console.log("ログファイルが存在しません");
}
JavaScript
  • 効果: app.log の内容を読み込んで表示。存在しない場合はメッセージを出す。

実務でのコツ

  • 同期 vs 非同期:
    • 小さなスクリプト → readFileSync で簡単に。
    • サーバーアプリ → readFile(非同期)で効率的に。
  • 文字コード: 日本語を扱うなら 'utf8' を必ず指定。
  • JSON: 設定ファイルを読み込むときは JSON.parse を組み合わせる。
  • エラー処理: ファイルが存在しない場合に備えて try-catch を書く。

ありがちなハマりポイントと対策

  • 文字化け:
    • 原因: エンコード指定なし。
    • 対策: 'utf8' を必ず指定。
  • プログラムが止まる:
    • 原因: readFileSync は同期処理。
    • 対策: サーバー用途では readFile を使う。
  • パスが間違っている:
    • 対策: 相対パスと実行場所を確認。__dirname を使うと安全。

練習問題(設定ファイル読み込み)

  1. config.json を作成して以下を記述:
{
  "appName": "MyApp",
  "version": "1.0"
}
JSON
  1. Node.js で読み込む:
const fs = require('fs');
const config = JSON.parse(fs.readFileSync('config.json', 'utf8'));

console.log(`アプリ名: ${config.appName}, バージョン: ${config.version}`);
JavaScript
  • 効果: JSONファイルを読み込んで設定値を利用できる。

直感的な指針

  • fs.readFileSync = ファイルを一気に読み込む。
  • fs.readFile = 非同期で読み込む。
  • 文字コードは 'utf8' を指定。
  • 小さなスクリプトなら同期、大きなアプリなら非同期。

これを覚えれば「テキストファイルを読む」「JSON設定を扱う」「ログを表示する」といった基本的なファイル操作ができるようになります。

タイトルとURLをコピーしました