node.js中的buffer.slice方法使用說(shuō)明
方法說(shuō)明:
返回一個(gè)新的buffer對(duì)象,這個(gè)新buffer和老buffer公用一個(gè)內(nèi)存。
但是被start和end索引偏移縮減了。(比如,一個(gè)buffer里有1到10個(gè)字節(jié),我們只想要4-8個(gè)字節(jié),就可以用這個(gè)函數(shù)buf.slice(4,8),因?yàn)樗麄児灿靡粋€(gè)內(nèi)存,所以不會(huì)消耗內(nèi)存,)
因?yàn)楣灿脙?nèi)存,所以修改新的buffer后,老buffer的內(nèi)容同樣也會(huì)被修改。
語(yǔ)法:
buffer.slice([start], [end])
接收參數(shù):
start 開(kāi)始位置,默認(rèn)
end 結(jié)束位置,默認(rèn)為buffer長(zhǎng)度
例子:
用ASCII碼字母表創(chuàng)建一個(gè)buffer,用一下slice函數(shù),然后修改原buffer中的一個(gè)字節(jié)。
var buf1 = new Buffer(26);
for (var i = 0 ; i < 26 ; i++) {
buf1[i] = i + 97; // 97 is ASCII a
}
var buf2 = buf1.slice(0, 3);
console.log(buf2.toString('ascii', 0, buf2.length));
buf1[0] = 33;
console.log(buf2.toString('ascii', 0, buf2.length));
// abc
// !bc
源碼:
// TODO(trevnorris): currently works like Array.prototype.slice(), which
// doesn't follow the new standard for throwing on out of range indexes.
Buffer.prototype.slice = function(start, end) {
var len = this.length;
start = ~~start;
end = util.isUndefined(end) ? len : ~~end;
if (start < 0) {
start += len;
if (start < 0)
start = 0;
} else if (start > len) {
start = len;
}
if (end < 0) {
end += len;
if (end < 0)
end = 0;
} else if (end > len) {
end = len;
}
if (end < start)
end = start;
var buf = new NativeBuffer();
sliceOnto(this, buf, start, end);
buf.length = end - start;
if (buf.length > 0)
buf.parent = util.isUndefined(this.parent) ? this : this.parent;
return buf;
};
- 使用node.js中的Buffer類處理二進(jìn)制數(shù)據(jù)的方法
- Node.js中使用Buffer編碼、解碼二進(jìn)制數(shù)據(jù)詳解
- Node.js Windows Binary二進(jìn)制文件安裝方法
- node.js中Buffer緩沖器的原理與使用方法分析
- Node.js Buffer模塊功能及常用方法實(shí)例分析
- 詳解如何在Node.js的httpServer中接收前端發(fā)送的arraybuffer數(shù)據(jù)
- Node.js Buffer用法解讀
- 關(guān)于Node.js中Buffer的一些你可能不知道的用法
- 淺談Node.js:Buffer模塊
- Node.js實(shí)用代碼段之正確拼接Buffer
- Node.js實(shí)用代碼段之獲取Buffer對(duì)象字節(jié)長(zhǎng)度
- node.js中的buffer.copy方法使用說(shuō)明
- node.js中的buffer.fill方法使用說(shuō)明
- node.js中的buffer.length方法使用說(shuō)明
- node.js中的buffer.toJSON方法使用說(shuō)明
- node.js中的buffer.toString方法使用說(shuō)明
- node.js中的buffer.Buffer.isEncoding方法使用說(shuō)明
- node.js中的buffer.Buffer.isBuffer方法使用說(shuō)明
- node.js中的buffer.Buffer.byteLength方法使用說(shuō)明
- node.JS二進(jìn)制操作模塊buffer對(duì)象使用方法詳解
相關(guān)文章
使用nodejs中httpProxy代理時(shí)候出現(xiàn)404異常的解決方法
下面小編就為大家?guī)?lái)一篇使用nodejs中httpProxy代理時(shí)候出現(xiàn)404異常的解決方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08
在Node.js中實(shí)現(xiàn)文件復(fù)制的方法和實(shí)例
這篇文章主要介紹了在Node.js中實(shí)現(xiàn)文件復(fù)制的方法和實(shí)例,使用FS模塊實(shí)現(xiàn),需要的朋友可以參考下2014-06-06
Windows系統(tǒng)下安裝Node.js的步驟圖文詳解
這篇文章主要給大家介紹了Windows系統(tǒng)下Node.js的安裝教程,Node.js是用于后端編程的JavaScript框架,文中給出了詳細(xì)圖文介紹,有需要的朋友可以參考下,下面來(lái)一起看看吧。2016-11-11
Node.js對(duì)MongoDB進(jìn)行增刪改查操作的實(shí)例代碼
這篇文章主要介紹了Node.js對(duì)MongoDB進(jìn)行增刪改查操作 ,需要的朋友可以參考下2019-04-04
nodejs使用Sequelize框架操作數(shù)據(jù)庫(kù)的實(shí)現(xiàn)
這篇文章主要介紹了nodejs使用Sequelize框架操作數(shù)據(jù)庫(kù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
使用NodeJS對(duì)一個(gè)字符串加密的操作方法示例
Node.js中的crypto模塊提供了多種加密算法,可以用來(lái)加密字符串,AES和RSA是其中兩種常用的算法,本文介紹如何使用NodeJS對(duì)一個(gè)字符串加密,感興趣的朋友一起看看吧2025-01-01
node實(shí)現(xiàn)shell命令管理工具及commander.js學(xué)習(xí)
這篇文章主要為大家介紹了node實(shí)現(xiàn)shell命令管理工具及commander.js學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09

