JavaScript(Node)でバッファ生成!Buffer.from()メソッドの使い方
投稿日 2025年02月07日 更新日 2025年02月07日
JavaScript(Node.js)でバッファを生成する際に使用される`Buffer.from()`メソッドについて解説します。
`Buffer.from()`とは
`Buffer.from()`は、バイナリデータを扱うためのメソッドで、文字列やバイト配列からバッファを生成することができます。
基本的な使い方
// 文字列からバッファを生成
const buffer1 = Buffer.from('Hello World');
// 16進数の配列からバッファを生成
const buffer2 = Buffer.from([0x48, 0x65, 0x6c, 0x6c, 0x6f]);
// Base64文字列からバッファを生成
const buffer3 = Buffer.from('SGVsbG8=', 'base64');
エンコーディングの指定
文字列からバッファを生成する際は、エンコーディングを指定することができます。
// UTF-8でエンコード(デフォルト)
const buffer4 = Buffer.from('こんにちは', 'utf8');
// ASCII文字列として扱う
const buffer5 = Buffer.from('Hello', 'ascii');
// UTF-16LEでエンコード
const buffer6 = Buffer.from('Hello', 'utf16le');
よくあるユースケース
ファイルの読み込み時
const fs = require('fs');
// ファイルをバッファとして読み込む
fs.readFile('example.txt', (err, data) => {
if (err) throw err;
const buffer = Buffer.from(data);
console.log(buffer.toString());
});
API通信時のデータ処理
const response = await fetch('https://api.example.com/data');
const arrayBuffer = await response.arrayBuffer();
const buffer = Buffer.from(arrayBuffer);
バッファの変換
// バッファを文字列に変換
const buffer = Buffer.from('Hello World');
console.log(buffer.toString()); // "Hello World"
// バッファをBase64に変換
console.log(buffer.toString('base64')); // "SGVsbG8gV29ybGQ="
注意点
- Node.js v6.0.0以降では、`new Buffer()`コンストラクタの使用は非推奨となり、代わりに`Buffer.from()`の使用が推奨されています。
- メモリ使用量に注意が必要で、大きなバッファを扱う場合はメモリリークに注意してください。
- エンコーディングの指定を間違えると文字化けの原因となります。
サポートされているエンコーディング
- utf8(デフォルト)
- ascii
- utf16le
- base64
- hex
- latin1
- binary
- ucs2
まとめ
`Buffer.from()`は、Node.jsでバイナリデータを扱う際の基本的なメソッドです。文字列やバイト配列からバッファを生成でき、様々なエンコーディングに対応しています。適切なエンコーディングを選択し、メモリ管理に注意を払うことで、効率的なバッファ処理が可能となります。
関連記事

新着記事
5
6
7
関連記事
5
6
7


60秒で完了