nodejs中Buffer的创建和转换
buffer是用來做什么?主要是用來處理二進制文件流和TCP流的文件緩存區。我們可以將二進制流和string,json,int進行轉換,也可以進行復制,或者通過自帶的函數進行判斷buffer的一些狀態。
創建Buffer對象(實例)
1.使用var buffer = new Buffer(size)創建對象,然后用buffer.fill(value,[offset],[end])來初始化對象。
2.使用var buffer = new Buffer(array)創建對象。
3.使用var buffer= new Buffer(string,[encoding])創建對象。
**字符串的長度和緩沖區的長度是不一樣的,因為字符串是文字為單位,而緩沖區是以字節數為單位。
Buffer<---->string 相互轉換(實例)
buf.toString([encoding],[start],[end]);//buffer轉換為字符串
buf.write(string,[offset],[length],[encoding]);//buffer將string轉換為buf并且寫入現有的buffer中(這里wirte實際功能是替換!!)
Stringdecoder類:
? 解釋為何使用這個類?因為我們通長會切割或者分開生產buffer,那么一段話就會被切開,這樣的話使用buffer->string則會生成亂碼,所以使用decoder.write(buf);則會避免這個問題。
?
Buffer<---->int 相互轉換(實例)
buf.readUInt8(offset,[noAssert])//這個函數用來讀取第offset位置上的buffer數據,如果noAssert設置為true,則會判斷是否offset沒有越界,并且拋出異常。
buf.wirteUInt8(value,offset,[noAssert])//這個函數用來替換第offset位置上的值。
Buffer<----->JSON相互轉換(實例)
var json = JSON.strify(buf)//將buf轉換為json格式數據
var array = JSON.parse(json)//將json轉化為array數組
?
buf1復制到buf2
buf.copy(targetBuffer,[targetstart],[sourcestart],[sourceend]);//將buffer1復制到bufer2之中。
?
Buffer類的類方法:(實例)
1.isBuffer方法:
Buffer.isBuffer(obj) ? 是否是一個buffer對象。
2.byteLength方法:
Buffer.byteLength(string,[encoding]) ? 判斷string轉為buffer的長度
?3.concat方法
Buffer.concat(list,[totalLength]) ? list是一個數組,將幾個buffer合為一個的orgin方法。
?4.isEncoding方法
Buffer.isEncoding(encoding)判斷當前是否是一個有效的編碼格式。
轉載于:https://www.cnblogs.com/caixiaojia/p/4712490.html
總結
以上是生活随笔為你收集整理的nodejs中Buffer的创建和转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 结构化并发应用程序——任务执行
- 下一篇: 数据结构---并查集