node.js中的buffer.write方法使用說明
方法說明:
將string使用指定的encoding寫入到buffer的offset處。
返回寫入了多少個八進制字節(jié)。
如果Buffer沒有足夠的空間來適應(yīng)整個string,那么將只有string的部分被寫入。
語法:
buffer.write(string, [offset], [length], [encoding])
接收參數(shù):
string String,被寫入buffer的數(shù)據(jù).
offet number,可選,默認0.數(shù)據(jù)寫入到buffer的位置.
length Number,可選,默認:buffer.length – offset,要寫入數(shù)據(jù)的長度
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(string, offset, length, encoding) {
// allow write(string, encoding)
if (util.isString(offset) && util.isUndefined(length)) {
encoding = offset;
offset = 0;
// allow write(string, offset[, length], encoding)
} else if (isFinite(offset)) {
offset = ~~offset;
if (isFinite(length)) {
length = ~~length;
} else {
encoding = length;
length = undefined;
}
// XXX legacy write(string, encoding, offset, length) - remove in v0.13
} else {
if (!writeWarned) {
if (process.throwDeprecation)
throw new Error(writeMsg);
else if (process.traceDeprecation)
console.trace(writeMsg);
else
console.error(writeMsg);
writeWarned = true;
}
var swap = encoding;
encoding = offset;
offset = ~~length;
length = swap;
}
var remaining = this.length - offset;
if (util.isUndefined(length) || length > remaining)
length = remaining;
encoding = !!encoding ? (encoding + '').toLowerCase() : 'utf8';
if (string.length > 0 && (length < 0 || offset < 0))
throw new RangeError('attempt to write beyond buffer bounds');
var ret;
switch (encoding) {
case 'hex':
ret = this.hexWrite(string, offset, length);
break;
case 'utf8':
case 'utf-8':
ret = this.utf8Write(string, offset, length);
break;
case 'ascii':
ret = this.asciiWrite(string, offset, length);
break;
case 'binary':
ret = this.binaryWrite(string, offset, length);
break;
case 'base64':
// Warning: maxLength not taken into account in base64Write
ret = this.base64Write(string, offset, length);
break;
case 'ucs2':
case 'ucs-2':
case 'utf16le':
case 'utf-16le':
ret = this.ucs2Write(string, offset, length);
break;
default:
throw new TypeError('Unknown encoding: ' + encoding);
}
return ret;
};
- nodejs基礎(chǔ)之buffer緩沖區(qū)用法分析
- NodeJS中Buffer模塊詳解
- node.js中的buffer.toString方法使用說明
- node.js中的buffer.toJSON方法使用說明
- node.js中的buffer.copy方法使用說明
- node.js中的buffer.slice方法使用說明
- node.js中的buffer.Buffer.isEncoding方法使用說明
- node.js中的buffer.fill方法使用說明
- node.js中的buffer.Buffer.isBuffer方法使用說明
- node.js中的buffer.length方法使用說明
- node.js中Buffer緩沖器的原理與使用方法分析
相關(guān)文章
Node.js中readline模塊實現(xiàn)終端輸入
本文主要介紹了Node.js中readline模塊實現(xiàn)終端輸入,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02
詳解Wondows下Node.js使用MongoDB的環(huán)境配置
這篇文章主要介紹了詳解Wondows下Node.js使用MongoDB的環(huán)境配置,這里使用到了Mongoose驅(qū)動來讓JavaScript操作MongoDB,需要的朋友可以參考下2016-03-03
從零開始學(xué)習(xí)Node.js系列教程六:EventEmitter發(fā)送和接收事件的方法示例
這篇文章主要介紹了Node.js EventEmitter發(fā)送和接收事件的方法,結(jié)合實例形式分析了EventEmitter發(fā)送和接收事件的原理、實現(xiàn)方法與相關(guān)操作技巧,需要的朋友可以參考下2017-04-04
node.js中RPC(遠程過程調(diào)用)的實現(xiàn)原理介紹
這篇文章主要介紹了node.js中RPC(遠程過程調(diào)用)的實現(xiàn)原理介紹,本文基于一個簡單的RPC庫nodejs light_rpc實現(xiàn),需要的朋友可以參考下2014-12-12
前端node Session和JWT鑒權(quán)登錄示例詳解
關(guān)于前端鑒權(quán)登錄是比較常見的需求了,本文將從服務(wù)端渲染和前后端分離的不同角度下演示鑒權(quán),為大家介紹前端node Session和JWT鑒權(quán)登錄示例詳解2022-07-07

