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でバイナリデータを扱う際の基本的なメソッドです。文字列やバイト配列からバッファを生成でき、様々なエンコーディングに対応しています。適切なエンコーディングを選択し、メモリ管理に注意を払うことで、効率的なバッファ処理が可能となります。
Resumy AI監修者
監修者: RESUMY.AI編集部

ヨーロッパのテックハブであるロンドンにて、シニアデベロッパーとしてチームを率いた後、オンライン教育プラットフォームUdemyでモダン技術に関する講義を配信する「Daiz Academy」を設立。現在はAIテクノロジー企業 Chott, Inc.を運営しています。

監修者: RESUMY.AI編集部
Resumy AI監修者

ヨーロッパのテックハブであるロンドンにて、シニアデベロッパーとしてチームを率いた後、オンライン教育プラットフォームUdemyでモダン技術に関する講義を配信する「Daiz Academy」を設立。現在はAIテクノロジー企業 Chott, Inc.を運営しています。

AI職務経歴書作成サービス RESUMY.AIAI職務経歴書作成サービス RESUMY.AI
60秒で完了