JavaScript 逆引き集 | Buffer の利用(Node)

JavaScript JavaScript
スポンサーリンク

Buffer の利用(Node.js) — Buffer.from('text')

Node.js には Buffer という特別なオブジェクトがあります。
これは「バイナリデータ(生のデータ列)」を扱うための仕組みで、ファイル読み書きやネットワーク通信などでよく使われます。初心者がまず覚えるべきは「文字列を Buffer に変換する」ことです。


基本のコード例

// 文字列を Buffer に変換
const buf = Buffer.from('Hello');

// Buffer の中身を確認
console.log(buf);
// → <Buffer 48 65 6c 6c 6f>

// Buffer を文字列に戻す
console.log(buf.toString());
// → "Hello"
JavaScript
  • Buffer.from('文字列') → 文字列をバイト列に変換。
  • 表示例: <Buffer 48 65 6c 6c 6f> は 16進数で表したバイト列。

よく使うテンプレート集

文字列 ↔ Buffer

const buf = Buffer.from("こんにちは", "utf8");
console.log(buf); // バイト列
console.log(buf.toString("utf8")); // "こんにちは"
JavaScript

ファイル読み込みと Buffer

const fs = require("fs");
const data = fs.readFileSync("hello.txt"); // Bufferで取得
console.log(data.toString("utf8")); // 文字列に変換
JavaScript

Base64 変換

const buf = Buffer.from("Hello World");
console.log(buf.toString("base64")); // "SGVsbG8gV29ybGQ="
JavaScript

バイナリデータを直接操作

const buf = Buffer.alloc(4); // 4バイト確保
buf[0] = 0x41; // 'A'
buf[1] = 0x42; // 'B'
buf[2] = 0x43; // 'C'
buf[3] = 0x44; // 'D'
console.log(buf.toString()); // "ABCD"
JavaScript

例題: 簡易的なファイルコピー

const fs = require("fs");

// ファイルを Buffer として読み込み
const data = fs.readFileSync("source.txt");

// Buffer をそのまま書き込み
fs.writeFileSync("copy.txt", data);

console.log("コピー完了!");
JavaScript
  • 効果: ファイルを Buffer で読み込み、そのまま別ファイルに書き込む。

実務でのコツ

  • 文字コード指定: Buffer.from(str, 'utf8') のように文字コードを指定できる。
  • 効率的: ネットワークやファイル操作では Buffer が高速。
  • Base64やHex: .toString('base64').toString('hex') で変換可能。
  • 固定サイズ: Buffer.alloc(size) で指定サイズのバッファを確保できる。

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

  • 文字化け:
    • 原因: 文字コードを指定しないと環境依存。
    • 対策: 常に 'utf8' を指定する。
  • BufferとArrayの違い:
    • Bufferはバイナリ専用。普通の配列とは別物。
  • ブラウザでは使えない:
    • BufferはNode.js専用。ブラウザでは Uint8Array を使う。

練習問題(文字列をBase64に変換して戻す)

const buf = Buffer.from("秘密のメッセージ", "utf8");

// Base64に変換
const b64 = buf.toString("base64");
console.log("Base64:", b64);

// Base64から復元
const back = Buffer.from(b64, "base64").toString("utf8");
console.log("復元:", back);
JavaScript
  • 効果: 文字列を Base64 に変換し、再び元の文字列に戻せる。

直感的な指針

  • Buffer = Node.js の「バイナリデータ箱」。
  • Buffer.from('文字列') で文字列をバイト列に変換。
  • .toString() で文字列に戻す。
  • ファイルやネットワーク通信で必須。

これを覚えれば「文字列をバイナリ化」「ファイルを読み書き」「Base64変換」など、Node.js の低レベル処理を自在に扱えるようになります。

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