ホームページ >ウェブフロントエンド >jsチュートリアル >node.js_node.js でのbuffer.write メソッドの使用手順

node.js_node.js でのbuffer.write メソッドの使用手順

WBOY
WBOYオリジナル
2016-05-16 16:27:471571ブラウズ

メソッドの説明:

指定されたエンコーディングを使用して、バッファのオフセットに文字列を書き込みます。

書き込まれたオクテット数を返します。

バッファに文字列全体を収めるのに十分なスペースがない場合は、文字列の一部のみが書き込まれます。

文法:

コードをコピーします コードは次のとおりです:

buffer.write(文字列, [オフセット], [長さ], [エンコーディング])

パラメータを受信します:

string バッファに書き込まれるデータの文字列。
オフセット番号、オプション、デフォルトは 0。データがバッファに書き込まれる場所。
length 数値、オプション、デフォルト:buffer.length – オフセット、書き込まれるデータの長さ
エンコード文字列、使用するエンコード形式、オプション、デフォルトは「utf8」です。

例:

コードをコピーします コードは次のとおりです:

buf = 新しいバッファ(256);

len = buf.write('u00bd u00bc = u00be', 0);

console.log(len " バイト: " buf.toString('utf8', 0, len));

ソースコード:

コードをコピー コードは次のとおりです:

Buffer.prototype.write = function(文字列、オフセット、長さ、エンコーディング) {
  // 書き込みを許可します(文字列、エンコーディング)
  if (util.isString(offset) && util.isUnknown(length)) {
    エンコーディング = オフセット;
    オフセット = 0;
  // 書き込みを許可します(文字列, オフセット[, 長さ], エンコーディング)
  else if (isFinite(offset)) {
    オフセット = ~~オフセット;
    if (isFinite(length)) {
      長さ = ~~長さ;
    } else {
      エンコーディング = 長さ;
      長さ = 未定義;
    }
  // XXX レガシー write(文字列、エンコーディング、オフセット、長さ) - v0.13 で削除
  } else {
    if (!writeWarned) {
      if (process.throwDeprecation)
        throw new Error(writeMsg);
      else if (process.traceDeprecation)
        console.trace(writeMsg);
      それ以外
        console.error(writeMsg);
      writeWarned = true;
    }
    var swap = エンコーディング;
    エンコーディング = オフセット;
    オフセット = ~~長さ;
    長さ = 交換;
  }
  残りの変数 = this.length - オフセット;
  if (util.isUnknown(length) || 長さ > 残り)
    長さ = 残り;
  エンコーディング = !!エンコーディング ? (エンコーディング '').toLowerCase() : 'utf8';
  if (string.length > 0 && (length     throw new RangeError('バッファ境界を超えて書き込みを試行');
  var ret;
  スイッチ (エンコーディング) {
    ケース '16 進数':
      ret = this.hexWrite(文字列, オフセット, 長さ);
      休憩;
    ケース 'utf8':
    ケース 'utf-8':
      ret = this.utf8Write(文字列, オフセット, 長さ);
      休憩;
    ケース 'ascii':
      ret = this.asciiWrite(文字列, オフセット, 長さ);
      休憩;
    ケース 'バイナリ':
      ret = this.binaryWrite(文字列, オフセット, 長さ);
      休憩;
    ケース 'base64':
      // 警告:base64Write
では maxLength は考慮されません       ret = this.base64Write(文字列, オフセット, 長さ);
      休憩;
    ケース 'ucs2':
    ケース 'ucs-2':
    ケース 'utf16le':
    ケース 'utf-16le':
      ret = this.ucs2Write(文字列, オフセット, 長さ);
      休憩;
    デフォルト:
      throw new TypeError('不明なエンコーディング: 'エンコーディング);
  }
  return ret;
};
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。