搜尋
首頁微信小程式小程式開發微信小程式 Buffer緩衝區的解析

微信小程式 Buffer緩衝區的解析

Jun 27, 2018 pm 03:12 PM
buffer小程式微信小程式

這篇文章主要介紹了微信小程式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(&#39;ascii&#39;));    // 输出: abcdefghijklmnopqrstuvwxyz
console.log( buf.toString(&#39;ascii&#39;,0,5));  // 输出: abcde
console.log( buf.toString(&#39;utf8&#39;,0,5));  // 输出: abcde
console.log( buf.toString(undefined,0,5)); // 使用 &#39;utf8&#39; 编码, 并输出: abcde

  1. # #encoding - 使用的編碼。預設為 ‘utf8' 。

  2. start - 指定開始讀取的索引位置,預設為 0。

  3. end - 結束位置,預設為緩衝區的結尾。

Buffer轉JSON

#

var buf = new Buffer(&#39;www.runoob.com&#39;);
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())

  • #list用於合併的Buffer 物件陣列列表。

  • totalLength指定合併後Buffer物件的總長度。


比較.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

  1. sourceStart - 數字, 可選, 預設: 0

  2. #sourceEnd - 數字, 可選, 預設: buffer.length

  3. #
    buf.copy(targetBuffer[, targetStart[, sourceStart[, sourceEnd]]])

  4. 剪裁.slice(buffer2)

var buf1 = new Buffer("beiJing")
var buf2 = new Buffer(8)
buf1.copy(buf2)
console.log("buf2 content:"+buf2.toString())

#start - 數字, 可選, 預設: 0

##end - 數字, 可選, 預設: buffer.length

  1. #回傳值
  2. ##回傳一個新的緩衝區,它和舊緩衝區指向同一塊內存,但是從索引start 到end 的位置剪切。

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

長度.length


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中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),