JavaScript 言語自体には文字列データ型のみがあり、バイナリ データ型はありません。

ただし、TCP ストリームやファイル ストリームなどを扱う場合は、バイナリ データを使用する必要があります。 そのため、Node.js では、バイナリ データを格納する専用のバッファ領域を作成するために使用される Buffer クラスが定義されています。

Node.js では、Buffer クラスは Node core とともに配布されるコア ライブラリです。 バッファ ライブラリは、生データを Node.js に保存する方法を提供し、Node.js でバイナリ データを処理できるようにします。Node.js の I/O 操作で移動するデータを処理する必要があるときはいつでも、バッファ ライブラリを使用できます。 生データは Buffer クラスのインスタンスに保存されます。 バッファは整数の配列に似ていますが、V8 ヒープ メモリの外側にある生メモリのブロックに対応します。

v6.0 より前では Buffer オブジェクトを作成し、新しい Buffer() コンストラクターを直接使用してオブジェクト インスタンスを作成していましたが、Buffer はメモリ上で比較的大規模なアクセス許可操作を実行し、一部の機密情報を直接キャプチャできるため、v6 では0 以降、公式ドキュメントでは Buffer.from() インターフェイスを使用して Buffer オブジェクトを作成することを推奨しています。

Buffer 与字符编码

Buffer 实例一般用于表示编码字符的序列,比如 UTF-8 、 UCS2 、 Base64 、或十六进制编码的数据。 通过使用显式的字符编码,就可以在 Buffer 实例与普通的 JavaScript 字符串之间进行相互转换。

Bufferと文字エンコーディング

Buffer インスタンスは通常、 UTF-8 、 UCS2 、 Base64 、または 16 進数でエンコードされたデータなどのエンコードされた文字のシーケンスを表すために使用されます。 Buffer インスタンスは、明示的な文字エンコーディングを使用して、通常の JavaScript 文字列との間で変換できます。

const buf = Buffer.from('runoob', 'ascii');

// 出力 72756e6f6f62
console.log(buf.toString('hex'));

// 出力 cnVub29i
console.log(buf.toString('base64'));

現在 Node.js でサポートされている文字エンコーディングは次のとおりです。

  • ascii - 7 ビット ASCII データのみがサポートされます。 このエンコードは、上位ビットが削除されると非常に高速になります。

  • utf8 - Unicode 文字のマルチバイト エンコーディング。 多くの Web ページやその他のドキュメント形式では UTF-8 が使用されます。

  • utf16le - 2 バイトまたは 4 バイトのリトル エンディアンでエンコードされた Unicode 文字。 サロゲート ペア (U+10000 ~ U+10FFFF) がサポートされています。

  • ucs2 - utf16le のエイリアス。

  • base64 - Base64 エンコード。

  • latin1 - バッファを 1 バイトのエンコード文字列にエンコードする方法。

  • binary - latin1 のエイリアス。

  • hex - 各バイトを 2 つの 16 進文字としてエンコードします。

Buffer クラスの作成

Buffer は、Buffer クラスを作成するための次の API を提供します。

  • Buffer.alloc(size[, fill[, encoding]]): 指定されたサイズの Buffer インスタンスを返します。fill が設定されていない場合は、次のように 0 で埋められます。デフォルト
  • Buffer.allocUnsafe(size): 指定されたサイズの Buffer インスタンスを返しますが、初期化されないため、機密データが含まれる可能性があります
  • Buffer .allocUnsafeSlow(size)
  • Buffer.from(array): は、array の値 (配列の要素) によって初期化された新しい Buffer インスタンスを返します。受信配列は数値のみです。それ以外の場合は自動的に 0 で上書きされます)
  • Buffer.from(arrayBuffer[, byteOffset[, length]]):同じメモリを共有する新しいおよび指定された ArrayBuffer バッファ。
  • Buffer.from(buffer): 受信した Buffer インスタンスのデータをコピーし、新しい Buffer インスタンスを返します。
  • Buffer.from (string [, エンコーディング]): 文字列の値で初期化された新しいBuffer インスタンスを返します
// ゼロで埋められた長さ 10 のBufferを作成します。
const buf1 = Buffer.alloc(10);

// 0x1 で満たされた長さ 10 のBufferを作成します。
const buf2 = Buffer.alloc(10, 1);

/ 長さ 10 の初期化されていないBufferを作成します。
// このメソッドは Buffer.alloc() を呼び出すよりも高速です。
// ただし、返された Buffer インスタンスには古いデータが含まれている可能性があります。
// したがって、fill() または write() で書き直す必要があります。
const buf3 = Buffer.allocUnsafe(10);

// [0x1, 0x2, 0x3] を含むBufferを作成します。
const buf4 = Buffer.from([1, 2, 3]);

// UTF-8 バイト [0x74, 0xc3, 0xa9, 0x73, 0x74] を含むBufferを作成します。
const buf5 = Buffer.from('tést');

// Latin-1 バイト [0x74, 0xe9, 0x73, 0x74] を含むBufferを作成します。
const buf6 = Buffer.from('tést', 'latin1');

書き込みバッファ

文法

ノード バッファに書き込むための構文は次のとおりです。

buf.write(string[, offset[, length]][, encoding])

パラメータ

パラメータは次のように説明されます。

  • string - バッファに書き込む文字列。

  • offset - バッファへの書き込みが開始されるインデックス。デフォルトは 0 です。

  • length - 書き込むバイト数、デフォルトはbuffer.length

  • encoding - 使用するエンコーディング。 デフォルトは 'utf8' です。

encodingの文字コードに合わせてbufのオフセット位置に文字列を書き込みます。 長さパラメータは書き込まれたバイト数です。 buf に文字列全体を保持するのに十分なスペースがない場合は、文字列の一部のみが書き込まれます。 部分的にデコードされた文字のみが書き込まれません。

戻り値

実際に書き込まれたサイズを返します。 十分なバッファ領域がない場合は、文字列の一部のみが書き込まれます。

buf = Buffer.alloc(256);
len = buf.write("w3cstudy.cc");

console.log("バイトを書き込む : "+  len);

上記のコードを実行すると、出力は次のようになります:

$node main.js
バイトを書き込む : 11

バッファからデータを読み取る

文法

ノード バッファ データを読み取るための構文は次のとおりです。

buf.toString([encoding[, start[, end]]])

パラメータ

パラメータは次のように説明されます。

  • encoding - 使用するエンコーディング。 デフォルトは 'utf8' です。

  • start - 読み取りを開始するインデックス位置を指定します。デフォルトは 0 です。

  • end - 終了位置。デフォルトはバッファの末尾です。

戻り値

バッファ データをデコードし、指定されたエンコーディングを使用して文字列を返します。

buf = Buffer.alloc(26);
for (var i = 0 ; i < 26 ; i++) {
  buf[i] = i + 97;
}

console.log( buf.toString('ascii'));       // 出力: abcdefghijklmnopqrstuvwxyz
console.log( buf.toString('ascii',0,5));   //'ascii'エンコードを使用し、出力: abcde
console.log( buf.toString('utf8',0,5));    // 'utf8' エンコーディングを使用し、出力: abcde
console.log( buf.toString(undefined,0,5)); // デフォルトの 'utf8' エンコーディングを使用し、出力: abcde

上記のコードを実行すると、出力は次のようになります:

$ node main.js
abcdefghijklmnopqrstuvwxyz
abcde
abcde
abcde

Bufferを JSON オブジェクトに変換

文法

ノード Bufferーを JSON オブジェクトに変換する関数の構文は次のとおりです。

buf.toJSON()

JSON.stringify() は、Buffer インスタンスを文字列化するときに暗黙的に toJSON() を呼び出します。

戻り値

JSON オブジェクトを返します。

const buf = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5]);
const json = JSON.stringify(buf);

// 输出: {"type":"Buffer","data":[1,2,3,4,5]}
console.log(json);

const copy = JSON.parse(json, (key, value) => {
  return value && value.type === 'Buffer' ?
    Buffer.from(value.data) :
    value;
});

// 输出: <Buffer 01 02 03 04 05>
console.log(copy);

上記のコードを実行すると、出力結果は次のようになります:

{"type":"Buffer","data":[1,2,3,4,5]}
<Buffer 01 02 03 04 05>

バッファマージ

文法

Node バッファ結合の構文は次のとおりです。

Buffer.concat(list[, totalLength])

パラメータ

パラメータは次のように説明されます。

  • list - マージする Buffer オブジェクトの配列のリスト。

  • totalLength - 結合された Buffer オブジェクトの合計の長さを指定します。

戻り値

複数のメンバーが結合された新しい Buffer オブジェクトを返します。

var buffer1 = Buffer.from(('htmlチュートリアル'));
var buffer2 = Buffer.from(('w3cstudy.cc'));
var buffer3 = Buffer.concat([buffer1,buffer2]);
console.log("buffer3 内容: " + buffer3.toString());

上記のコードを実行すると、出力は次のようになります:

buffer3 コンテンツ: htmlチュートリアルw3cstudy.cc

バッファ比較

文法

Node Buffer比較の関数構文は次のとおりです。このメソッドは Node.js v0.12.2 バージョンで導入されました。

<前> buf.compare(otherBuffer);

パラメータ

パラメータは次のように説明されます。

  • otherBuffer - buf オブジェクトと比較する別の Buffer オブジェクト。

戻り値

bufotherBuffer の前、後、または同じであることを示す数値を返します。

var buffer1 = Buffer.from('ABC');
var buffer2 = Buffer.from('ABCD');
var result = buffer1.compare(buffer2);

if(result < 0) {
   console.log(buffer1 + " の前 " + buffer2 );
}else if(result == 0){
   console.log(buffer1 + " は " + buffer2 + "と同じです");
}else {
   console.log(buffer1 + " 後 " + buffer2 );
}

上記のコードを実行すると、出力は次のようになります:

ABC は ABCD の前に来ます

バッファをコピー

文法

Node バッファ コピーの構文は次のとおりです。

<前> buf.copy(targetBuffer[, targetStart[,sourceStart[,sourceEnd]]])

パラメータ

パラメータは次のように説明されます。

  • targetBuffer - コピーする Buffer オブジェクト。

  • targetStart - 数値、オプション、デフォルト: 0

  • sourceStart - 数値、オプション、デフォルト: 0

  • sourceEnd - 数値、オプション、デフォルト:buffer.length

戻り値

戻り値はありません。

var buf1 = Buffer.from('abcdefghijkl');
var buf2 = Buffer.from('RUNOOB');

// buf1 の指定された位置に buf2 を挿入します
buf2.copy(buf1, 2);

console.log(buf1.toString());

上記のコードを実行すると、出力結果は次のようになります:

abRUNOOBijkl

バッファクリッピング

Node バッファのクリッピング構文は次のとおりです。

buf.slice([start[, end]])

パラメータ

パラメータは次のように説明されます。

  • start - 数値、オプション、デフォルト: 0

  • end - 数値、オプション、デフォルト:buffer.length

戻り値

古いバッファと同じメモリを指す新しいバッファを返しますが、インデックスの最初から最後まで切り取られます。

var buffer1 = Buffer.from('runoob');
// バッファをカットする
var buffer2 = buffer1.slice(0,2);
console.log("buffer2 content: " + buffer2.toString());

上記のコードを実行すると、出力結果は次のようになります:

buffer2 content: ru

バッファ長

構文

Node バッファ長を計算するための構文は次のとおりです。

buf.length;

戻り値

Buffer オブジェクトが占有するメモリ長を返します。

var buffer = Buffer.from('w3cstudy.cc');
// バッファ長
console.log("buffer length: " + buffer.length);

上記のコードを実行すると、出力結果は次のようになります:

buffer length: 11

メソッドリファレンスマニュアル

以下に、Node.js Buffer モジュールの一般的に使用されるメソッドを示します (一部のメソッドは古いバージョンでは使用できないことに注意してください)。

番号 メソッドと説明
1 new Buffer(size)
サイズ単位が 8 ビットバイトの新しいバッファを割り当てます。 サイズは kMaxLength より小さい必要があることに注意してください。そうでない場合は、RangeError 例外がスローされます。 非推奨: 代わりに Buffer.alloc() (または Buffer.allocUnsafe()) を使用してください。
2 new Buffer(buffer)
パラメータバッファのデータをBufferインスタンスにコピーします。 非推奨: 代わりに Buffer.from(buffer) を使用してください。
3 new Buffer(str[, encoding])
渡された str 文字列を含む新しいバッファを割り当てます。 エンコーディングのデフォルトは「utf8」です。 非推奨: 代わりに Buffer.from(string[, encoding]) を使用してください。
4 buf.length
このバッファのバイト数を返します。 これは必ずしもバッファの内容のサイズではないことに注意してください。 length はバッファ オブジェクトによって割り当てられるメモリの量であり、バッファ オブジェクトの内容が変化しても変化しません。
5 buf.write(string[, offset[, length]][, encoding])
パラメータのオフセットに従って、指定されたオフセットエンコードエンコード方式では、パラメータ文字列データをバッファに書き込みます。 オフセットのデフォルト値は 0 で、デフォルトのエンコード方式は utf8 です。 length 長さは、書き込まれる文字列のバイト単位のサイズです。 書き込まれたオクテット数を示す数値を返します。 バッファーに文字列全体を格納できる十分なスペースがない場合は、文字列の一部のみが書き込まれます。 長さのデフォルトは、buffer.length - オフセットです。 この方法では部分文字は書き込めないようです。
6 buf.writeUIntLE(value, offset, byteLength[, noAssert])
値をバッファに書き込みます。値はオフセットで構成され、byteLength が決定します。 、最大 48 ビットの符号なし整数、リトル エンディアン アライメントをサポートします。例:
const buf = Buffer.allocUnsafe(6);

buf.writeUIntLE(0x1234567890ab, 0, 6);

// 出力: <Buffer ab 90 78 56 34 12>
console.log(buf);
noAssert の値が true の場合、値とオフセットの有効性は検証されなくなります。 デフォルトは false です。
7 buf.writeUIntBE(value, offset, byteLength[, noAssert])
値をバッファに書き込みます。値はオフセットと ByteLength で構成されます。 、最大 48 ビットの符号なし整数、ビッグエンディアンをサポートします。 noAssert の値が true の場合、値とオフセットの有効性は検証されなくなります。 デフォルトは false です。
const buf = Buffer.allocUnsafe(6);

buf.writeUIntBE(0x1234567890ab, 0, 6);

// 出力: <Buffer 12 34 56 78 90 ab>
console.log(buf);
8 buf.writeIntLE(value, offset, byteLength[, noAssert])
値をバッファに書き込みます。値はオフセットで構成され、byteLength が決定します。最大 48 ビットの符号付き整数をサポートし、リトルエンディアンにアライメントされていることがわかります。 noAssert の値が true の場合、値とオフセットの有効性は検証されなくなります。 デフォルトは false です。
9 buf.writeIntBE(value, offset, byteLength[, noAssert])
値をバッファに書き込みます。値はオフセットで構成され、byteLength が決定します。最大 48 ビットの符号付き整数、ビッグエンディアンをサポートしていること。 noAssert の値が true の場合、値とオフセットの有効性は検証されなくなります。 デフォルトは false です。
10 buf.readUIntLE(offset, byteLength[, noAssert])
48 ビット未満の符号なし数値、リトルエンディアンの読み取りをサポートします。 noAssert の値が true の場合、offset はバッファの長さを超えているかどうかを検証しなくなり、デフォルトは false です。
11 buf.readUIntBE(offset, byteLength[, noAssert])
48 ビット未満の符号なし数値、ビッグエンディアンの読み取りをサポートします。 noAssert の値が true の場合、offset はバッファの長さを超えているかどうかを検証しなくなり、デフォルトは false です。
12 buf.readIntLE(offset, byteLength[, noAssert])
48 ビット未満の符号付き数値、リトル エンディアンの読み取りをサポートします。 noAssert の値が true の場合、offset はバッファの長さを超えているかどうかを検証しなくなり、デフォルトは false です。
13 buf.readIntBE(offset, byteLength[, noAssert])
大端揃えで 48 ビット未満の符号付き数値の読み取りをサポートします。 noAssert の値が true の場合、offset はバッファの長さを超えているかどうかを検証しなくなり、デフォルトは false です。
14 buf.toString([encoding[, start[, end]]])
エンコーディング パラメータによる (デフォルトは 'utf8') ) デコードされた文字列型を返します。 値の範囲は、受信パラメータの start (デフォルトでは 0) と end (デフォルトではbuffer.length) にも基づきます。
15 buf.toJSON()
Buffer インスタンスを JSON オブジェクトに変換します。
16 buf[index]
指定されたバイトを取得または設定します。 戻り値はバイトを表すため、戻り値の有効範囲は 16 進数で 0x00 ~ 0xFF、10 進数で 0 ~ 255 です。
17 buf.equals(otherBuffer)
2 つのバッファが等しいかどうかを比較し、はいの場合は true を返し、そうでない場合は false を返します。
18 buf.compare(otherBuffer)
2 つの Buffer オブジェクトを比較し、buf が otherBuffer より前、後、または同じであることを示す数値を返します。 。
19 buf.copy(targetBuffer[, targetStart[,sourceStart[,sourceEnd]]])
バッファ コピー、ソースおよびターゲットは次のとおりです。同じです。 targetStart ターゲット開始オフセットとsourceStart ソース開始オフセットは両方ともデフォルトで 0 です。 sourceEnd ソース終了位置オフセットのデフォルトは、ソースbuffer.length の長さです。
20 buf.slice([start[, end]])
開始(デフォルトは0)と終了に従ってバッファオブジェクトを切り取ります(デフォルトはbuffer.length)インデックスをオフセットしてクリップします。 負のインデックスはバッファの最後からカウントされます。
21 buf.readUInt8(offset[, noAssert])
指定されたオフセットにある符号なし 8 ビット整数を読み取ります。 noAssert パラメータが true の場合、offset パラメータは検証されません。 その場合、オフセットはバッファの終わりを超える可能性があります。 デフォルトは false です。
22 buf.readUInt16LE(offset[, noAssert])
指定されたオフセットに従って、特殊なエンディアン バイト オーダー形式を使用して読み取ります。符号なし 16 ビット整数。 noAssert パラメータが true の場合、offset パラメータは検証されません。 これは、オフセットがバッファの終わりを超える可能性があることを意味します。 デフォルトは false です。
23 buf.readUInt16BE(offset[, noAssert])
指定されたオフセットに従って、特殊なエンディアン バイト オーダー形式を使用して読み取ります。符号なし 16 ビット整数、ビッグエンディアン。 noAssert パラメータが true の場合、offset パラメータは検証されません。 これは、オフセットがバッファの終わりを超える可能性があることを意味します。 デフォルトは false です。
24 buf.readUInt32LE(offset[, noAssert])
指定されたオフセットに従って、指定されたエンディアン バイト オーダー形式を使用して読み取ります。リトルエンディアンにアライメントされた符号なし 32 ビット整数。 noAssert パラメータが true の場合、offset パラメータは検証されません。 これは、オフセットがバッファの終わりを超える可能性があることを意味します。 デフォルトは false です。
25 buf.readUInt32BE(offset[, noAssert])
指定されたオフセットに従って、指定されたエンディアン バイト オーダー形式を使用して読み取ります。符号なし 32 ビット整数、ビッグエンディアン。 noAssert パラメータが true の場合、offset パラメータは検証されません。 これは、オフセットがバッファの終わりを超える可能性があることを意味します。 デフォルトは false です。
26 buf.readInt8(offset[, noAssert])
指定されたオフセットで符号付き 8 ビット整数を読み取ります。 noAssert パラメータが true の場合、offset パラメータは検証されません。 これは、オフセットがバッファの終わりを超える可能性があることを意味します。 デフォルトは false です。
27 buf.readInt16LE(offset[, noAssert])
指定されたオフセットに従って、特別なエンディアン形式を使用して符号付き 16-ビット整数、リトルエンディアン。 noAssert パラメータが true の場合、offset パラメータは検証されません。 これは、オフセットがバッファの終わりを超える可能性があることを意味します。 デフォルトは false です。
28 buf.readInt16BE(offset[, noAssert])
指定されたオフセットに従って、特別なエンディアン形式を使用して符号付き 16-ビット整数、ビッグエンディアン。 noAssert パラメータが true の場合、offset パラメータは検証されません。 これは、オフセットがバッファの終わりを超える可能性があることを意味します。 デフォルトは false です。
29 buf.readInt32LE(offset[, noAssert])
指定されたオフセットに従って、指定されたエンディアン バイト オーダー形式を使用して読み取ります。リトルエンディアンにアライメントされた符号付き 32 ビット整数。 noAssert パラメータが true の場合、offset パラメータは検証されません。 これは、オフセットがバッファの終わりを超える可能性があることを意味します。 デフォルトは false です。
30 buf.readInt32BE(offset[, noAssert])
指定されたオフセットに従って、指定されたエンディアン バイト オーダー形式を使用して読み取ります。符号付き 32 ビット整数、ビッグエンディアン。 noAssert パラメータが true の場合、offset パラメータは検証されません。 これは、オフセットがバッファの終わりを超える可能性があることを意味します。 デフォルトは false です。
31 buf.readFloatLE(offset[, noAssert])
指定されたオフセットに従って、指定されたエンディアン バイト オーダー形式を使用して読み取ります。リトルエンディアンにアライメントされた 32 ビット double float。 noAssert パラメータが true の場合、offset パラメータは検証されません。 これは、オフセットがバッファの終わりを超える可能性があることを意味します。 デフォルトは false です。
32 buf.readFloatBE(offset[, noAssert])
指定されたオフセットに従って、指定されたエンディアン バイト オーダー形式を使用して読み取ります。 32 ビット double float、ビッグエンディアン。 noAssert パラメータが true の場合、offset パラメータは検証されません。 これは、オフセットがバッファの終わりを超える可能性があることを意味します。 デフォルトは false です。
33 buf.readDoubleLE(offset[, noAssert])
指定されたオフセットに従って、指定されたエンディアン バイト オーダー形式を使用して読み取ります。リトルエンディアンにアライメントされた 64 ビットの倍精度数値。 noAssert パラメータが true の場合、offset パラメータは検証されません。 これは、オフセットがバッファの終わりを超える可能性があることを意味します。 デフォルトは false です。
34 buf.readDoubleBE(offset[, noAssert])
指定されたオフセットに従って、指定されたエンディアン バイト オーダー形式を使用して読み取ります。 64 ビット ダブル、ビッグ エンディアン。 noAssert パラメータが true の場合、offset パラメータは検証されません。 これは、オフセットがバッファの終わりを超える可能性があることを意味します。 デフォルトは false です。
35 buf.writeUInt8(value, offset[, noAssert])
渡されたオフセット offset に従って値をバッファに書き込みます。 注: value は有効な符号なし 8 ビット整数である必要があります。 noAssert パラメータが true の場合、offset パラメータは検証されません。 これは、値が大きすぎるか、オフセットがバッファの末尾を超えて値が破棄される可能性があることを意味します。 このパラメータについて十分に確信がない限り、使用しないでください。 デフォルトは false です。
36 buf.writeUInt16LE(value, offset[, noAssert])
受信オフセット offset と指定されたエンディアン形式に従って、値バッファに書き込まれます。 注: 値は、リトルエンディアンにアライメントされた、正当な符号なし 16 ビット整数である必要があります。 noAssert パラメータが true の場合、value および offset offset パラメータは検証されません。 これは、値が大きすぎるか、オフセットがバッファの末尾を超えて値が破棄される可能性があることを意味します。 このパラメータについてよくわからない場合は、使用しないでください。 デフォルトは false です。
37 buf.writeUInt16BE(value, offset[, noAssert])
受信オフセット offset と指定されたエンディアン形式に従って、値バッファに書き込まれます。 注: 値は、有効な符号なし 16 ビット整数、ビッグエンディアンである必要があります。 noAssert パラメータが true の場合、value および offset offset パラメータは検証されません。 これは、値が大きすぎるか、オフセットがバッファの末尾を超えて値が破棄される可能性があることを意味します。 このパラメータについてよくわからない場合は、使用しないでください。 デフォルトは false です。
38 buf.writeUInt32LE(value, offset[, noAssert])
受信オフセット offset と指定されたエンディアン形式に従って (LITTLE- ENDIAN: リトルエンディアン) 値をバッファに書き込みます。 注: 値は、リトルエンディアンにアライメントされた、正当な符号なし 32 ビット整数である必要があります。 noAssert パラメータが true の場合、value および offset offset パラメータは検証されません。 これは、値が大きすぎるか、オフセットがバッファの末尾を超えて値が破棄される可能性があることを意味します。 このパラメータについてよくわからない場合は、使用しないでください。 デフォルトは false です。
39 buf.writeUInt32BE(value, offset[, noAssert])
受信オフセット offset と指定されたエンディアン形式に従って ( Big-エンディアン: ビッグエンディアン) 値をバッファに書き込みます。 注: 値は有効な符号付き 32 ビット整数である必要があります。 noAssert パラメータが true の場合、value および offset offset パラメータは検証されません。 これは、値が大きすぎるか、オフセットがバッファの末尾を超えて値が破棄される可能性があることを意味します。 このパラメータについてよくわからない場合は、使用しないでください。 デフォルトは false です。
40 buf.writeInt8(value, offset[, noAssert])
渡されたオフセット offset に従って value をバッファに書き込みます。 注: 値は有効な符号付き 8 ビット整数である必要があります。 noAssert パラメータが true の場合、value および offset offset パラメータは検証されません。 これは、値が大きすぎるか、オフセットがバッファの末尾を超えて値が破棄される可能性があることを意味します。 このパラメータについてよくわからない場合は、使用しないでください。 デフォルトは false です。
41 buf.writeInt16LE(value, offset[, noAssert])
受信オフセット offset と指定されたエンディアン形式に従って、値バッファに書き込まれます。 注: 値は有効な符号付き 16 ビット整数である必要があります。 noAssert パラメータが true の場合、value および offset offset パラメータは検証されません。 これは、値が大きすぎるか、オフセットがバッファの末尾を超えて値が破棄される可能性があることを意味します。 このパラメータについてよくわからない場合は、使用しないでください。 デフォルトは false です。
42 buf.writeInt16BE(value, offset[, noAssert])
受信オフセット offset と指定されたエンディアン形式に従って、値バッファに書き込まれます。 注: 値は有効な符号付き 16 ビット整数である必要があります。 noAssert パラメータが true の場合、value および offset offset パラメータは検証されません。 これは、値が大きすぎるか、オフセットがバッファの末尾を超えて値が破棄される可能性があることを意味します。 このパラメータについてよくわからない場合は、使用しないでください。 デフォルトは false です。
43 buf.writeInt32LE(value, offset[, noAssert])
受信オフセット offset と指定されたエンディアン形式に従って、値バッファに書き込まれます。 注: 値は有効な符号付き 32 ビット整数である必要があります。 noAssert パラメータが true の場合、value および offset offset パラメータは検証されません。 これは、値が大きすぎるか、オフセットがバッファの末尾を超えて値が破棄される可能性があることを意味します。 このパラメータについてよくわからない場合は、使用しないでください。 デフォルトは false です。
44 buf.writeInt32BE(value, offset[, noAssert])
受信オフセット offset と指定されたエンディアン形式に従って、値バッファに書き込まれます。 注: 値は有効な符号付き 32 ビット整数である必要があります。 noAssert パラメータが true の場合、value および offset offset パラメータは検証されません。 これは、値が大きすぎるか、オフセットがバッファの末尾を超えて値が破棄される可能性があることを意味します。 このパラメータについてよくわからない場合は、使用しないでください。 デフォルトは false です。
45 buf.writeFloatLE(value, offset[, noAssert])
受信オフセット offset と指定されたエンディアン形式に従って、値バッファに書き込みます。 注: value が 32 ビット浮動小数点値でない場合、結果は不定になります。 noAssert パラメータが true の場合、value および offset offset パラメータは検証されません。 これは、値が大きすぎるか、オフセットがバッファの末尾を超えて値が破棄される可能性があることを意味します。 このパラメータについてよくわからない場合は、使用しないでください。 デフォルトは false です。
46 buf.writeFloatBE(value, offset[, noAssert])
受信オフセット offset と指定されたエンディアン形式に従って、値バッファに書き込みます。 注: value が 32 ビット浮動小数点値でない場合、結果は不定になります。 noAssert パラメータが true の場合、value および offset offset パラメータは検証されません。 これは、値が大きすぎるか、オフセットがバッファの末尾を超えて値が破棄される可能性があることを意味します。 このパラメータについてよくわからない場合は、使用しないでください。 デフォルトは false です。
47 buf.writeDoubleLE(value, offset[, noAssert])
受信オフセット offset と指定されたエンディアン形式に従って、値バッファに書き込まれます。 注: value は有効な 64 ビット double 値である必要があります。 noAssert パラメータが true の場合、value および offset offset パラメータは検証されません。 これは、値が大きすぎるか、オフセットがバッファの末尾を超えて値が破棄される可能性があることを意味します。 このパラメータについてよくわからない場合は、使用しないでください。 デフォルトは false です。
48 buf.writeDoubleBE(value, offset[, noAssert])
受信オフセット offset と指定されたエンディアン形式に従って、値バッファに書き込まれます。 注: value は有効な 64 ビット double 値である必要があります。 noAssert パラメータが true の場合、value および offset offset パラメータは検証されません。 これは、値が大きすぎるか、オフセットがバッファの末尾を超えて値が破棄される可能性があることを意味します。 このパラメータについてよくわからない場合は、使用しないでください。 デフォルトは false です。
49 buf.fill(value[, offset][, end])
指定された値を使用してこのバッファを埋めます。 オフセット(デフォルトでは0)と終了(デフォルトではbuffer.length)が指定されていない場合、バッファ全体が埋められます。