クイックリファレンス

Node.js fs モジュール チートシート

Node.js fs モジュールのリファレンス:非同期・同期のファイル読み書き、変更監視、属性取得、ファイル記述子、ディレクトリ操作。

· 公開日

Node.js の fs (File System) モジュールは、Promise、コールバック、または同期処理を用いてローカルファイルシステムを操作するための API を提供します。

Promise ベースの API (fs/promises)

const fs = require('fs/promises');
// import fs from 'node:fs/promises';

// ファイルを UTF-8 文字列として読み込む
const content = await fs.readFile('data.txt', 'utf8');

// ファイル内容を書き込みまたは上書き
await fs.writeFile('output.txt', 'Hello World', 'utf8');

// ファイル末尾に追記
await fs.appendFile('log.txt', 'New entry\n', 'utf8');

// 存在およびアクセス権限の確認
try {
  await fs.access('config.json');
} catch {
  console.log('ファイルが存在しないかアクセス権がありません');
}

同期 API

const fs = require('fs');

const data = fs.readFileSync('input.txt', 'utf8');
fs.writeFileSync('output.txt', data);
fs.appendFileSync('output.txt', '\nappended');

const exists = fs.existsSync('file.txt');

ファイルのメタデータと統計情報 (fs.stat)

const stats = await fs.stat('file.txt');

stats.isFile();            // -> 通常ファイル (true / false)
stats.isDirectory();       // -> ディレクトリ (true / false)
stats.isSymbolicLink();    // -> シンボリックリンク (true / false)
stats.size;                // バイト単位のファイルサイズ
stats.mtime;               // 最終更新日時タイムスタンプ

ディレクトリ操作

// ディレクトリ内のファイル一覧を取得
const files = await fs.readdir('src/');

// 再帰的にディレクトリを作成
await fs.mkdir('build/assets/css', { recursive: true });

// 再帰的にディレクトリを削除
await fs.rm('dist/', { recursive: true, force: true });

ファイルシステムの監視 (fs.watch)

const fs = require('fs');

const watcher = fs.watch('src/', { recursive: true }, (eventType, filename) => {
  console.log(`Event: ${eventType} on ${filename}`);
});

// 監視の停止
watcher.close();

ファイル記述子 (File Descriptors)

const fs = require('fs/promises');

// 読み取り専用で開く
const filehandle = await fs.open('archive.bin', 'r');

// 1024 バイトのバッファを確保
const buffer = Buffer.alloc(1024);

// バッファにバイトを読み込む
const { bytesRead } = await filehandle.read(buffer, 0, 1024, 0);

await filehandle.close();

関連リファレンス

関連テーマ