您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關如何在nodejs中使用buffer緩沖區,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
創建buffer類
1、創建長度為指定字節的buffer實例
var buffer = new Buffer(10); //創建長度為10字節的buffer實例
2、通過數組創建buffer實例
var buffer = new Buffer([10,20,30,40,50]);
3、通過一個字符串來創建buffer實例
var buffer = new Buffer('www.google.com','utf-8'); //utf-8 是默認的編碼方式,此外還可以指定以下編碼:"ascii", "utf8", "utf16le", "ucs2", "base64" 和 "hex"
緩沖區長度
語法:
buf.length;
返回值:
返回 Buffer 對象所占據的內存長度。
實例:
var buffer = new Buffer('www.runoob.com'); // 緩沖區長度 console.log("buffer length: " + buffer.length); //buffer length: 14
寫入緩沖區
語法:
buffer.write(string[, offset][, length][, encoding])
參數:
string:寫入緩沖區的字符串。
offset:緩沖區開始寫入的索引值,默認為 0 。
length:寫入的字節數,默認為 buffer.length
encoding:使用的編碼。默認為 'utf8
' 。
返回值:
返回實際寫入的大小(number類型)。如果 buffer 空間不足, 則只會寫入部分字符串。
實例:
buf = new Buffer(256); len = buf.write("www.runoob.com"); console.log("寫入字節數 : "+ len); //寫入字節數 : 14
從緩沖區讀取數據
語法:
buf.toString([encoding][, start][, end])
參數:
encoding:使用的編碼,默認為utf-8
start:指定開始讀取的索引位置,默認為0
end:指定讀取的結束位置,默認為緩沖區的末尾
返回值:
解碼緩沖區數據,并使用指定的編碼返回字符串
實例:
buf = new Buffer(26); for (var i = 0 ; i < 26 ; i++) { buf[i] = i + 97; } console.log( buf.toString('ascii')); // 輸出: abcdefghijklmnopqrstuvwxyz console.log( buf.toString('ascii',0,5)); // 輸出: abcde console.log( buf.toString('utf8',0,5)); // 輸出: abcde console.log( buf.toString(undefined,0,5)); // 使用 'utf8' 編碼, 并輸出: abcde
buffer對象轉換成json對象
語法:
toJSON()
方法
返回值:
json對象
實例:
var buf = new Buffer('www.google.com'); var json = buf.toJSON(buf); console.log(json); //[ 119, 119, 119, 46, 103, 111, 111, 103, 108, 101, 46, 99, 111, 109 ]
緩沖區合并
語法:
Buffer.concat(list[, totalLength])
參數:
list:用于合并的 Buffer 對象數組列表。
totalLength:指定合并后Buffer對象的總長度。
返回值:
返回一個多個成員合并的新 Buffer 對象。
實例:
var buf1 = new Buffer("谷歌網址:"); var buf2 = new Buffer("www.google.com"); var buf3 = Buffer.concat([buf1,buf2]); console.log('buf1的內容為:'+buf1.toString()); //buf1的內容為:谷歌網址: console.log('buf2的內容為:'+buf2.toString()); //buf2的內容為:www.google.com console.log('buf3的內容為:'+buf3.toString()); //buf3的內容為:谷歌網址:www.google.com
緩沖區拷貝
語法:
buf.copy(targetBuffer[, targetStart][, sourceStart][, sourceEnd])
參數:
參數描述如下:
targetBuffer - 要拷貝的 Buffer 對象。
targetStart - 數字, 可選, 默認: 0
sourceStart - 數字, 可選, 默認: 0
sourceEnd - 數字, 可選, 默認: buffer.length
返回值:
沒有返回值。
實例:
var buf1 = new Buffer('ABC'); // 拷貝一個緩沖區 var buf2 = new Buffer(2); var buf3 = new Buffer(3); var buf4 = new Buffer(5); var buf5 = new Buffer('abcdef'); buf1.copy(buf2); buf1.copy(buf3); buf1.copy(buf4); buf1.copy(buf5); console.log("buf2 content: " + buf2.toString()); //buf2 content: AB console.log("buf3 content: " + buf3.toString()); //buf3 content: ABC console.log("buf4 content: " + buf4.toString()); //buf4 content: ABC 因為開辟出來的內存大了些,所以這里接一堆怪符號 console.log("buf5 content: " + buf5.toString()); //buf5 content: ABCdef
緩沖區裁剪
語法:
buf.slice([start][, end])
參數:
參數描述如下:
start - 數字, 可選, 默認: 0
end - 數字, 可選, 默認: buffer.length
返回值:
返回一個新的緩沖區,它和舊緩沖區指向同一塊內存,但是從索引 start 到 end 的位置剪切。
實例:
var buffer1 = new Buffer('runoob'); // 剪切緩沖區 var buffer2 = buffer1.slice(0,2); console.log("buffer2 content: " + buffer2.toString()); //buffer2 content: ru
看完上述內容,你們對如何在nodejs中使用buffer緩沖區有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。