首頁 >web前端 >js教程 >node.js中的buffer.write方法使用說明_node.js

node.js中的buffer.write方法使用說明_node.js

WBOY
WBOY原創
2016-05-16 16:27:471580瀏覽

方法說明:

將string使用指定的encoding寫入到buffer的offset處。

傳回寫入了多少個八進位位元組。

如果Buffer沒有足夠的空間來適應整個string,那麼將只有string的部分被寫入。

文法:

複製程式碼 程式碼如下:

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

接收參數:

string                  而已寫入buffer的資料.
offet                   number,可選,預設0.資料寫入至buffer的位置.
length                Number,可選,預設:buffer.length – offset,要寫入資料的長度
encoding           String,需要使用的編碼格式,可選,預設為」utf8″.

範例:

複製程式碼 程式碼如下:

buf = new Buffer(256);
 
len = buf.write('u00bd u00bc = u00be', 0);
 
console.log(len " bytes: " buf.toString('utf8', 0, len));

原始碼:

複製程式碼 程式碼如下:

Buffer.prototype.write = function(字串, 偏移量, 長度, 編碼) {
  // 允許寫入(字串, 編碼)
  if (util.isString(offset) && util.isUndefined(length)) {
    編碼=偏移量;
    偏移量 = 0;
  // 允許寫入(字串, 偏移量[, 長度], 編碼)
  } else if (isFinite(offset)) {
    偏移量 = ~~偏移量;
    if (isFinite(長度)) {
      長度 = ~~長度;
    } 其他 {
      編碼=長度;
      長度=未定義;
    }
  // XXX 舊版 write(字串、編碼、偏移量、長度) - 在 v0.13
中刪除   } 其他 {
    if (!writeWarned) {
      if (process.throwDeprecation)
        拋出新錯誤(writeMsg);
      else if (process.traceDeprecation)
        console.trace(writeMsg);
      其他
        console.error(writeMsg);
      writeWarned = true;
    }
    var swap = 編碼;
    編碼=偏移量;
    偏移量 = ~~長度;
    長度=交換;
  }
  var剩餘 = this.length - 偏移量;
  if (util.isUndefined(length) || 長度 > 剩餘)
    長度=剩餘;
  編碼=! !編碼? (編碼 '').toLowerCase() : 'utf8';
  if (string.length > 0 && (長度     throw new RangeError('嘗試寫入超出緩衝區範圍');
  var ret;
  開關(編碼){
    案例「十六進位」:
      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('未知編碼:'編碼);
  }
  回傳 ret;
};
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn