這篇文章主要介紹了微信小程式Buffer緩衝區的詳解的相關資料,需要的朋友可以參考下
微信小程式Buffer緩衝區的詳解
#JavaScript 語言本身只有字串資料型,沒有二進位資料型別。
但在處理像TCP流或檔案流時,必須使用到二進位資料。因此在 Node.js中,定義了一個 Buffer 類,該類別用來建立一個專門存放二進位資料的快取區。
在 node.js 中,Buffer 類別是隨 Node 核心一起發佈的核心函式庫。 Buffer 函式庫為Node.js 帶來了一種儲存原始資料的方法,可以讓Node.js 處理二進位數據,每當需要在Node.js 中處理I/O操作中移動的資料時,就有可能使用Buffer 函式庫。原始資料儲存在 Buffer 類別的實例中。一個 Buffer 類似於一個整數數組,但它對應於 V8 堆記憶體之外的一塊原始記憶體。
建立Buffer
1.长度为10的实例 var buf = new Buffer(10) 2.通过给定的数组创建 var buf = new Buffer([10,20,30,40,50]) 3.通过字符串创建 var buf = new Buffer("www.csdn.net","utf-8") utf-8 是默认的编码方式 支持以下编码:"ascii", "utf8", "utf16le", "ucs2", "base64" 和 "hex"。
#寫入快取區.write()
var buf = new Buffer(200) var len = buf.write("www.csdn.net") console.log("写入字节数:" + len)
string - 寫入緩衝區的字串。
offset - 緩衝區開始寫入的索引值,預設為 0 。
length - 寫入的位元組數,預設為 buffer.length
encoding - 使用的編碼。預設為 ‘utf8' 。
快取區讀取.toString()
#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
#
var buf = new Buffer('www.runoob.com'); var json = buf.toJSON(buf); console.log(json);
合併Buffer.concat([, ])
var buf = new Buffer("北京") var buf1 = new Buffer("上海") var buf2 = Buffer.concat([buf,buf1],12) console.log(buf2.toString())
比較.compare(otherBuffer)
#在Node.js v0.12.2 版本引入#
var buffer1 = new Buffer("AVCX") var buffer2 = new Buffer("ACVV") 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 + "之后"); }
##targetBuffer -要拷貝的Buffer 物件。
targetStart - 數字, 可選, 預設: 0
sourceStart - 數字, 可選, 預設: 0
#sourceEnd - 數字, 可選, 預設: buffer.length
buf.copy(targetBuffer[, targetStart[, sourceStart[, sourceEnd]]])
var buf1 = new Buffer("beiJing") var buf2 = new Buffer(8) buf1.copy(buf2) console.log("buf2 content:"+buf2.toString())
#start - 數字, 可選, 預設: 0
##end - 數字, 可選, 預設: buffer.length
##回傳一個新的緩衝區,它和舊緩衝區指向同一塊內存,但是從索引start 到end 的位置剪切。
buf.slice([start[, end]])
var buf1 = new Buffer("beiJing") var buf2 = buf1.slice(0,8) console.log("buf2 content:"+buf2) // beiJing//傳回這個buffer 的bytes 數。注意這未必是 buffer 裡面內容的大小。 length 是 buffer 物件所分配的記憶體數,它不會隨著這個 buffer 物件內容的改變而改變。
以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!
相關推薦:關於微信小程式的動態傳參
關於微信小程式的非同步處理以上是微信小程式 Buffer緩衝區的解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!