麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網站 > WEB開發 > 正文

web前端之了解node五:Buffer(緩沖區)

2024-04-27 15:16:01
字體:
來源:轉載
供稿:網友

web前端之了解node五:Buffer(緩沖區)

javaScript 語言自身只有字符串數據類型,沒有二進制數據類型。

但在處理像TCP流或文件流時,必須使用到二進制數據。因此在 Node.js中,定義了一個 Buffer 類,該類用來創建一個專門存放二進制數據的緩存區。

在 Node.js 中,Buffer 類是隨 Node 內核一起發布的核心庫。Buffer 庫為 Node.js 帶來了一種存儲原始數據的方法,可以讓 Node.js 處理二進制數據,每當需要在 Node.js 中處理I/O操作中移動的數據時,就有可能使用 Buffer 庫。原始數據存儲在 Buffer 類的實例中。一個 Buffer 類似于一個整數數組,但它對應于 V8 堆內存之外的一塊原始內存。

創建 Buffer 類

Node Buffer 類可以通過多種方式來創建。

方法 1

創建長度為 10 字節的 Buffer 實例:

var buf = new Buffer(10);

方法 2

通過給定的數組創建 Buffer 實例:

var buf = new Buffer([10, 20, 30, 40, 50]);

方法 3

通過一個字符串來創建 Buffer 實例:

var buf = new Buffer(“www.runoob.com”, “utf-8”);

utf-8 是默認的編碼方式,此外它同樣支持以下編碼:”ascii”, “utf8”, “utf16le”, “ucs2”, “base64” 和 “hex”。

寫入緩沖區

語法

寫入 Node 緩沖區的語法如下所示:

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

參數描述如下:

string- 寫入緩沖區的字符串。

offset- 緩沖區開始寫入的索引值,默認為 0 。

length- 寫入的字節數,默認為 buffer.length

encoding- 使用的編碼。默認為 ‘utf8’ 。

返回值

返回實際寫入的大小。如果 buffer 空間不足, 則只會寫入部分字符串。

實例:

buf=new Buffer(256);len=buf.write("www.baidu.com","utf-8");console.log("寫入字節長度:"+len);

運行:

node E:/study/node/main1.js

從緩沖區讀取數據

語法

讀取 Node 緩沖區數據的語法如下所示:

buf.toString([encoding[,start[,end]]])

參數描述如下:

encoding- 使用的編碼。默認為 ‘utf8’ 。

start- 指定開始讀取的索引位置,默認為 0。

end- 結束位置,默認為緩沖區的末尾。

返回值

解碼緩沖區數據并使用指定的編碼返回字符串。

實例:

buf=new Buffer(26);for(var i=0;i<26;i++){ buf[i]=i+97;}console.log(buf.toString('ascii'));console.log(buf.toString('ascii',0,5));console.log(buf.toString('utf8',0,5));console.log(buf.toString(undefined,0,5));//使用‘UTF8’編碼

運行:

node E:/study/node/main1.js

將 Buffer 轉換為 JSON 對象:

語法

將 Node Buffer 轉換為 JSON 對象的函數語法格式如下:buf.toJSON()

返回值

返回 JSON 對象。

實例:

var buf=new Buffer('www.baidu.com');var json=buf.toJSON(buf);console.log(json);

緩沖區合并

語法

Node 緩沖區合并的語法如下所示:Buffer.concat(list[,totalLength])

參數描述如下:

list- 用于合并的 Buffer 對象數組列表。

totalLength- 指定合并后Buffer對象的總長度。

返回值

返回一個多個成員合并的新 Buffer 對象。

實例:

var buffer1=new Buffer("abc");var buffer2=new Buffer("www.baidu.com");var buffer3=Buffer.concat([buffer1,buffer2],6);console.log(buffer3.toString());

緩沖區比較

語法

Node Buffer 比較的函數語法如下所示, 該方法在 Node.js v0.12.2 版本引入:buf.compare(otherBuffer);

參數描述如下:

otherBuffer- 與buf對象比較的另外一個 Buffer 對象。

返回值

返回一個數字,表示buf在otherBuffer之前,之后或相同。

實例:

var buffer1=new Buffer("abc");var buffer2=new Buffer("abcd");var result=buffer1.compare(buffer2);if(result<0){ console.log(buffer1+"在"+buffer2+"之前");}else if(result==0){ console.log(buffer1+"與"+buffer2+"相同");}else{ console.log(buffer1+"在"+buffer2+"之后");}

拷貝緩沖區

語法

Node 緩沖區拷貝語法如下所示:buf.copy(targetBuffer[,targetStart[,sourceStart[,sourceEnd]]])

參數描述如下:

targetBuffer- 要拷貝的 Buffer 對象。

targetStart- 數字, 可選, 默認: 0

sourceStart- 數字, 可選, 默認: 0

sourceEnd- 數字, 可選, 默認: buffer.length

實例:

var buffer1=new Buffer("ABC");//拷貝一個緩沖區var buffer2=new Buffer(3);buffer1.copy(buffer2);console.log(buffer2.toString());

緩沖區裁剪

語法

Node 緩沖區裁剪語法如下所示:buf.slice([start[,end]])

參數描述如下:

start- 數字, 可選, 默認: 0

end- 數字, 可選, 默認: buffer.length

返回值

返回一個新的緩沖區,它和舊緩沖區指向同一塊內存,但是從索引 start 到 end 的位置剪切。

實例:

var buffer1=new Buffer("ABCDEFG");var buffer2=buffer1.slice(1,5);console.log("buffer2 content:"+buffer2.toString());

緩沖區長度

語法

Node 緩沖區長度計算語法如下所示:buf.length;

返回值

返回 Buffer 對象所占據的內存長度。

實例:

var buffer1=new Buffer("ABCDEFG");console.log("buffer1 length:"+buffer1.length);

方法參考手冊

以下列出了 Node.js Buffer 模塊常用的方法

這里寫圖片描述 這里寫圖片描述 這里寫圖片描述 這里寫圖片描述 這里寫圖片描述 這里寫圖片描述 這里寫圖片描述 這里寫圖片描述 這里寫圖片描述

參考資料


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲综合91| 国产91porn | 91 在线免费观看 | 牛牛a级毛片在线播放 | 女人久久久www免费人成看片 | 国产91久久久久久 | 国产精品亚洲三区 | 久久精品视频69 | 在线日韩亚洲 | 精品国产成人 | 一级大黄毛片 | 特级无码毛片免费视频尤物 | 欧美毛片 | 狠狠干夜夜草 | 午夜激情视频免费 | 性欧美xxxx免费岛国不卡电影 | 毛片视频免费观看 | 久久精品99久久久久久2456 | 亚洲视频在线观看免费 | 九九精品在线观看视频 | 日本高清com| 在线成人免费网站 | 美国黄色毛片女人性生活片 | 精品国产一区二区三区在线观看 | 色综合久久久久久久久久久 | 成人免费网视频 | 91美女视频在线 | 中文字幕22页 | 在线亚洲欧美 | 福利在线免费 | 久国久产久精永久网页 | 一区二区三区视频在线观看 | 国产一区二区三区高清 | 性少妇chinesevideo | 成年性羞羞视频免费观看 | 在线免费日本 | 羞羞视频免费网站含羞草 | 国产不卡av在线 | 亚洲成人黄色片 | 爱逼爱操综合网 | 视频一区二区不卡 |