node.js中的buffer.write方法使用說(shuō)明
方法說(shuō)明:
將string使用指定的encoding寫(xiě)入到buffer的offset處。
返回寫(xiě)入了多少個(gè)八進(jìn)制字節(jié)。
如果Buffer沒(méi)有足夠的空間來(lái)適應(yīng)整個(gè)string,那么將只有string的部分被寫(xiě)入。
語(yǔ)法:
buffer.write(string, [offset], [length], [encoding])
接收參數(shù):
string String,被寫(xiě)入buffer的數(shù)據(jù).
offet number,可選,默認(rèn)0.數(shù)據(jù)寫(xiě)入到buffer的位置.
length Number,可選,默認(rèn):buffer.length – offset,要寫(xiě)入數(shù)據(jù)的長(zhǎng)度
encoding String,需要使用的編碼格式,可選,默認(rèn)為”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方法使用說(shuō)明
- node.js中的buffer.toJSON方法使用說(shuō)明
- node.js中的buffer.copy方法使用說(shuō)明
- node.js中的buffer.slice方法使用說(shuō)明
- node.js中的buffer.Buffer.isEncoding方法使用說(shuō)明
- node.js中的buffer.fill方法使用說(shuō)明
- node.js中的buffer.Buffer.isBuffer方法使用說(shuō)明
- node.js中的buffer.length方法使用說(shuō)明
- node.js中Buffer緩沖器的原理與使用方法分析
相關(guān)文章
解決koa2 ctx.render is not a function報(bào)錯(cuò)問(wèn)題
這篇文章主要介紹了解決koa2 ctx.render is not a function報(bào)錯(cuò)問(wèn)題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-08-08如何構(gòu)建一個(gè)?NodeJS?影院微服務(wù)并使用?Docker?部署
微服務(wù)是一個(gè)單獨(dú)的自包含單元,與其他許多單元一起構(gòu)成一個(gè)大型應(yīng)用程序,這篇文章主要介紹了如何構(gòu)建一個(gè)NodeJS影院微服務(wù)并使用Docker部署,在這個(gè)系列中,將構(gòu)建一個(gè) NodeJS 微服務(wù),并使用 Docker Swarm 集群進(jìn)行部署,需要的朋友可以參考下2023-08-08node連接MongoDB數(shù)據(jù)庫(kù)錯(cuò)誤:MongoServerSelectionError:?connect?ECON
使用node連接MongoDB數(shù)據(jù)庫(kù)時(shí)發(fā)生報(bào)錯(cuò),MongoServerSelectionError:?connect?ECONNREFUSED?::1:27017,本文給大家分享原因分析及解決方案,感興趣的朋友跟隨小編一起看看吧2023-04-04nodejs express搭建服務(wù)并熱更新文件過(guò)程詳解
這篇文章主要為大家介紹了nodejs express搭建服務(wù)并熱更新文件過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11node.JS事件機(jī)制與events事件模塊的使用方法詳解
本文將詳細(xì)介紹nodeJS事件機(jī)制與events事件模塊的使用方2020-02-02教你用Node.js與Express建立一個(gè)GraphQL服務(wù)器
GraphQL是一種通過(guò)強(qiáng)類(lèi)型查詢(xún)語(yǔ)言構(gòu)建api的新方法,下面這篇文章主要給大家介紹了關(guān)于用Node.js與Express建立一個(gè)GraphQL服務(wù)器的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12利用C/C++編寫(xiě)node.js原生模塊的方法教程
這篇文章主要給大家介紹了關(guān)于利用C/C++編寫(xiě)node.js原生模塊的相關(guān)資料,文中將實(shí)現(xiàn)的步驟一步步的介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來(lái)一起看看吧。2017-07-07