Buffer類概述 數組
一個用於更好的操做二進制數據的類 咱們在操做文件或者網絡數據的時候,其實操做的就是二進制數據流網絡
Node爲咱們提供了一個更加方便的去操做這種數據流的類 Buffer,他是一個全局的類,不須要引入後才能使用,能夠直接使用編碼
Buffer類的構造方法spa
new Buffer(size)3d
分配一個新的buffer大小是size的8位字節,參數size是一個Number類型的(相似數組的長度),一個長度表示1個字節對象
建立一個Buffer對象,併爲這個對象分配一個大小,當咱們爲一個Buffer對象分配了大小以後,其長度是固定不變的,不能更改blog
打印出來的結果是以16進制的方式打印的索引
new Buffer(array)utf-8
分配一個新的Buffer使用一個8位字節Array數組字符串
給某角標賦值
new Buffer(string, [encoding])
存儲一個字符串的時候,須要告訴Buffer一個編碼,不一樣編碼結果是不同的,默認編碼是utf-8
Node裏面並非支持全部編碼,支持的編碼有:ascll/utf16le/ucs2/base64/binary/hex
這裏直接打印出來的是十六進制的表示
Buffer的屬性
Buffer的length屬性和buf[index]
buf.length : buffer的bytes大小
buf[index] : 獲取或者設置在指定index索引位置的8位字節內容
Buffer的length屬性須要注意的地方
這個length的屬性指的不是字符的長度,而是字節的長度(buffer的bytes大小).一箇中文是3個字節
根據參數 offset 偏移量和指定的encoding編碼方式,將參數 string 數據寫入buffer
buf.write(要寫入的字符串, 從Buffer對象中的幾位開始寫入, 寫入的字符串的長度, 寫入的字符串的編碼)
標準輸入輸出流中其實也是使用了Buffer