久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長(zhǎng)資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

深入了解Node.js中的 Buffer(緩沖區(qū))

本篇文章帶大家深入了解下Node.js中的 Buffer(緩沖區(qū)),介紹一下創(chuàng)建 Buffer 類的多種方式、寫入緩沖區(qū)的方法等,希望對(duì)大家有所幫助!

深入了解Node.js中的 Buffer(緩沖區(qū))

JavaScript 語(yǔ)言自身只有字符串?dāng)?shù)據(jù)類型,沒有二進(jìn)制數(shù)據(jù)類型。

但在處理像 TCP 流或文件流時(shí),必須使用到二進(jìn)制數(shù)據(jù)。因此在 Node.js 中,定義了一個(gè) Buffer 類,該類用來(lái)創(chuàng)建一個(gè)專門存放二進(jìn)制數(shù)據(jù)的緩存區(qū)。

在 Node.js 中,Buffer 類是隨 Node 內(nèi)核一起發(fā)布的核心庫(kù)。Buffer 庫(kù)為 Node.js 帶來(lái)了一種存儲(chǔ)原始數(shù)據(jù)的方法,可以讓 Node.js 處理二進(jìn)制數(shù)據(jù),每當(dāng)需要在 Node.js 中處理 I/O 操作中移動(dòng)的數(shù)據(jù)時(shí),就有可能使用 Buffer 庫(kù)。

原始數(shù)據(jù)存儲(chǔ)在 Buffer 類的實(shí)例中。

一個(gè) Buffer 類似于一個(gè)整數(shù)數(shù)組,但它對(duì)應(yīng)于 V8 堆內(nèi)存之外的一塊原始內(nèi)存。

創(chuàng)建 Buffer 類

Node Buffer 類可以通過(guò)多種方式來(lái)創(chuàng)建。

方法 1

創(chuàng)建長(zhǎng)度為 10 字節(jié)的 Buffer 實(shí)例:

var buf = new Buffer(10);

方法 2

通過(guò)給定的數(shù)組創(chuàng)建 Buffer 實(shí)例:

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

方法 3

通過(guò)一個(gè)字符串來(lái)創(chuàng)建 Buffer 實(shí)例:

var buf = new Buffer("bianchengsanmei", "utf-8");

utf-8 是默認(rèn)的編碼方式,此外它同樣支持以下編碼:"ascii", "utf8", "utf16le", "ucs2", "base64" 和 "hex"。

寫入緩沖區(qū)

語(yǔ)法

寫入 Node 緩沖區(qū)的語(yǔ)法如下所示:

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

參數(shù)

參數(shù)描述如下:

  • string – 寫入緩沖區(qū)的字符串。
  • offset – 緩沖區(qū)開始寫入的索引值,默認(rèn)為 0 。
  • length – 寫入的字節(jié)數(shù),默認(rèn)為 buffer.length
  • encoding – 使用的編碼。默認(rèn)為 'utf8' 。

返回值

返回實(shí)際寫入的大小。如果 buffer 空間不足, 則只會(huì)寫入部分字符串。
實(shí)例

buf = new Buffer(256); len = buf.write("bi"); len = buf.write("bianchengsanmei");  console.log("寫入字節(jié)數(shù) : "+  len);

執(zhí)行以上代碼,輸出結(jié)果為:

$node main.js 寫入字節(jié)數(shù) : 15復(fù)制代碼

從緩沖區(qū)讀取數(shù)據(jù)

語(yǔ)法

讀取 Node 緩沖區(qū)數(shù)據(jù)的語(yǔ)法如下所示:

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

參數(shù)

參數(shù)描述如下:

  • encoding – 使用的編碼。默認(rèn)為 'utf8' 。

  • start – 指定開始讀取的索引位置,默認(rèn)為 0。

  • end – 結(jié)束位置,默認(rèn)為緩沖區(qū)的末尾。

返回值

解碼緩沖區(qū)數(shù)據(jù)并使用指定的編碼返回字符串。

實(shí)例

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

執(zhí)行以上代碼,輸出結(jié)果為:

$ node main.js abcdefghijklmnopqrstuvwxyz abcde abcde abcde

將 Buffer 轉(zhuǎn)換為 JSON 對(duì)象

語(yǔ)法

將 Node Buffer 轉(zhuǎn)換為 JSON 對(duì)象的函數(shù)語(yǔ)法格式如下:

buf.toJSON()

返回值

返回 JSON 對(duì)象。

實(shí)例

var buf = new Buffer('bianchengsanmei'); var json = buf.toJSON(buf);   console.log(json);

執(zhí)行以上代碼,輸出結(jié)果為:

{   type: 'Buffer',   data: [      98, 105, 97, 110, 99, 104, 101, 110, 103, 115, 97, 110, 109, 101, 105   ] }

緩沖區(qū)合并

語(yǔ)法

Node 緩沖區(qū)合并的語(yǔ)法如下所示:

Buffer.concat(list[, totalLength])

參數(shù)

參數(shù)描述如下:

  • list – 用于合并的 Buffer 對(duì)象數(shù)組列表。
  • totalLength – 指定合并后 Buffer 對(duì)象的總長(zhǎng)度。

返回值

返回一個(gè)多個(gè)成員合并的新 Buffer 對(duì)象。

實(shí)例

var buffer1 = new Buffer('編程三昧 '); var buffer2 = new Buffer('bi'); var buffer2 = new Buffer('bianchengsanmei'); var buffer3 = Buffer.concat([buffer1,buffer2]); console.log("buffer3 內(nèi)容: " + buffer3.toString());

執(zhí)行以上代碼,輸出結(jié)果為:

buffer3 內(nèi)容: 編程三昧 bianchengsanmei

緩沖區(qū)比較

語(yǔ)法

Node Buffer 比較的函數(shù)語(yǔ)法如下所示, 該方法在 Node.js v0.12.2 版本引入:

buf.compare(otherBuffer);

參數(shù)

參數(shù)描述如下:

  • otherBuffer – 與 buf 對(duì)象比較的另外一個(gè) Buffer 對(duì)象。

返回值

返回一個(gè)數(shù)字,表示 bufotherBuffer 之前,之后或相同。

實(shí)例

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 + "之后"); }

執(zhí)行以上代碼,輸出結(jié)果為:

ABC在ABCD之前

拷貝緩沖區(qū)

語(yǔ)法

Node 緩沖區(qū)拷貝語(yǔ)法如下所示:

buf.copy(target[, targetStart[, sourceStart[, sourceEnd]]])

參數(shù)

參數(shù)描述如下:

  • targetBuffer – 要拷貝的 Buffer 對(duì)象。
  • targetStart – 數(shù)字, 可選, 默認(rèn): 0
  • sourceStart – 數(shù)字, 可選, 默認(rèn): 0
  • sourceEnd – 數(shù)字, 可選, 默認(rèn): buffer.length

返回值

沒有返回值。

實(shí)例

var buffer1 = new Buffer('ABC'); // 拷貝一個(gè)緩沖區(qū) var buffer2 = new Buffer(3); buffer1.copy(buffer2); console.log("buffer2 content: " + buffer2.toString());

執(zhí)行以上代碼,輸出結(jié)果為:

buffer2 content: ABC

緩沖區(qū)裁剪

Node 緩沖區(qū)裁剪語(yǔ)法如下所示:

buf.slice([start[, end]])

參數(shù)

參數(shù)描述如下:

  • start – 數(shù)字, 可選, 默認(rèn): 0
  • end – 數(shù)字, 可選, 默認(rèn): buffer.length

返回值

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

實(shí)例

var buffer1 = new Buffer('youj'); // 剪切緩沖區(qū) var buffer2 = buffer1.slice(0,2); console.log("buffer2 content: " + buffer2.toString());

執(zhí)行以上代碼,輸出結(jié)果為:

buffer2 content: yo

緩沖區(qū)長(zhǎng)度

語(yǔ)法 Node 緩沖區(qū)長(zhǎng)度計(jì)算語(yǔ)法如下所示:

buf.length;

返回值

返回 Buffer 對(duì)象所占據(jù)的內(nèi)存長(zhǎng)度。

實(shí)例

var buffer = new Buffer('bianchengsanmei'); //  緩沖區(qū)長(zhǎng)度 console.log("buffer length: " + buffer.length);

執(zhí)行以上代碼,輸出結(jié)果為:

buffer length: 15

~

~本文完,感謝閱讀!

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
国产高清日韩| 日韩中文影院| 日韩在线免费| 色网在线免费观看| 麻豆精品av| 国产乱人伦精品一区| 日韩精品电影一区亚洲| 国产综合色产| 免费在线观看视频一区| 国产精品日韩| 中文字幕亚洲影视| 欧美亚洲tv| 日韩激情啪啪| 久久中文字幕一区二区三区| 精品理论电影在线| 久久精品导航| 在线视频免费在线观看一区二区| 水野朝阳av一区二区三区| 亚洲精品日本| 国产精品久久久久77777丨| 国产福利一区二区三区在线播放| 久久精品三级| 亚洲v在线看| 亚洲欧洲av| 国产精品一级| 午夜精品成人av| 免费视频久久| 日韩精品一区二区三区中文在线| 国产免费av一区二区三区| 日韩av自拍| 丝袜诱惑制服诱惑色一区在线观看| 青青国产91久久久久久| av一区在线| 日韩国产精品久久久久久亚洲| 国产精品久久久久久久久妇女| 好看不卡的中文字幕| 欧美日韩黄网站| 欧美成人国产| 日韩精品91| 欧美亚洲二区| 悠悠资源网久久精品| 成人国产精品一区二区免费麻豆| 欧美日韩精品一本二本三本| 国产精品久久久久久久久久妞妞| 亚洲欧美日韩视频二区| 国产a亚洲精品| 国产九一精品| 日韩欧美在线精品| 日韩午夜在线| 欧美亚洲在线日韩| 涩涩av在线| 日产精品一区二区| 精品视频91| 国产精品三级| 国产精品v日韩精品v欧美精品网站| 在线亚洲激情| 国产亚洲高清视频| 欧美日韩在线网站| 中文字幕系列一区| 精品国产欧美| 老牛国内精品亚洲成av人片| 国产欧美自拍| 国产精品第十页| 国产精品日韩精品在线播放| 国产欧美日韩一区二区三区四区| 日韩高清三区| 日韩av黄色在线| 日本午夜精品久久久久| 久久国产婷婷国产香蕉| 国产免费av一区二区三区| 国产精品99精品一区二区三区∴| 国产精品99久久免费观看| 国产精品第一国产精品| 国产一区不卡| 日韩不卡免费高清视频| 黄色在线一区| 日本少妇精品亚洲第一区| 麻豆精品少妇| 激情综合网址| 天堂va在线高清一区| 奇米色欧美一区二区三区| 精品一区av| 亚洲精品电影| 欧美日韩一区二区三区不卡视频 | 国产二区精品| 日韩二区三区四区| 麻豆中文一区二区| 亚洲二区精品| 日韩精品视频中文字幕| 精品视频一区二区三区四区五区 | 五月天久久久| 久久精品av麻豆的观看方式| 成人亚洲欧美| 免播放器亚洲| 日韩成人精品一区| 伊人久久一区| 成人午夜网址| 日韩影院精彩在线| 日本欧美不卡| 国产极品模特精品一二| 久久国产成人| 高清av不卡| 国产伦乱精品| 日韩亚洲国产欧美| 98精品久久久久久久| 国产一级成人av| 在线亚洲成人| 91精品一区国产高清在线gif | 日韩高清中文字幕一区二区| 亚洲伊人精品酒店| 精品日韩视频| 久久精品国产福利| 亚洲精品少妇| 亚洲国内精品| 国产精品久久久久av电视剧| 国产精品色在线网站| 精品1区2区3区4区| 成人精品亚洲| 精品亚洲精品| 国产精品色在线网站| 久久亚洲国产精品一区二区| 日韩精品网站| 蜜桃av在线播放| 久久影院午夜精品| 精品视频一二| 日韩深夜视频| 色黄视频在线观看| 视频在线不卡免费观看| 麻豆精品99| 色婷婷亚洲mv天堂mv在影片| 国产网站在线| 正在播放日韩精品| 高清不卡亚洲| 国产二区精品| 免费在线观看视频一区| jiujiure精品视频播放| 精品一区在线| 亚洲综合不卡| 亚洲日本久久| 国产乱子精品一区二区在线观看| 欧美激情福利| 国产白浆在线免费观看| 中文国产一区| 欧美日韩中文| 免费看av不卡| 日韩午夜电影| 91嫩草精品| 福利欧美精品在线| 亚洲大全视频| 日韩三级一区| 国产亚洲人成a在线v网站| 久久精品国产成人一区二区三区| 日韩国产在线| 日韩精品电影一区亚洲| 成人国产精品| 亚洲欧美在线专区| 久久男人天堂| 欧美影院视频| 亚洲福利免费| 久久久久观看| 亚洲综合婷婷| 亚洲黄色中文字幕| 日本午夜精品一区二区三区电影| a国产在线视频| 日本不卡的三区四区五区| 国产精品尤物| 欧美在线网站| 久久的色偷偷| 亚洲久久视频| 欧美丝袜一区| 久久免费精品| 偷拍亚洲精品| 国产亚洲精品自拍| 精品成av人一区二区三区| 亚洲精品极品| 日韩视频在线一区二区三区| 欧美xxxx中国| 国产亚洲久久| 免费成人av在线播放| 欧美影院三区| 精品久久亚洲| 日本a口亚洲| 另类激情亚洲| 黄色国产精品| 黄色亚洲精品| 欧美粗暴jizz性欧美20| 久久久人人人| 国产v综合v| av一区在线| 久久久影院免费| 在线一区av| 欧美13videosex性极品| 97精品国产一区二区三区| 久久精品天堂| 国产精品久久久久久久久久妞妞 | 国产九一精品| 国产欧美精品| 麻豆一区二区在线| 精品国产黄a∨片高清在线| 卡一精品卡二卡三网站乱码|