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);
JavaScriptrequire('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}`);
});
JavaScripttry-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を使うと安全。
- 対策: 相対パスと実行場所を確認。
練習問題(設定ファイル読み込み)
config.jsonを作成して以下を記述:
{
"appName": "MyApp",
"version": "1.0"
}
JSON- 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設定を扱う」「ログを表示する」といった基本的なファイル操作ができるようになります。
