天天看點

【Node.JS】buffer類緩沖區

目錄

​​簡介​​

​​建立Buffer類​​

​​使用Buffer類​​

​​例 ​​

​​直接使用buffer類​​

簡介

node.js的開發語言就是js,

javascript語言自身隻有字元串資料類型,沒有二進制資料類型。

node.js有時會操作一些檔案,或是tcp流之類的東西。

那麼就必須要操作二進制資料,

是以,在node.js中,有一個buffer類,

他用來建立一個專門存放二進制資料的緩存區。

buffer類是随node.js安裝的,直接引入就可以使用。

這些原始資料是存儲在buffer類的執行個體中,一個buffer類就相當于是一個整數數組,他相當于是劃出了一塊自己的記憶體空間。

buffer類的執行個體,用于表示編碼字元的序列,支援utf-8,ascii等

建立Buffer類

Buffer.alloc,傳回一個指定大小的Buffer執行個體,如果沒有設定 fill,則預設填滿 0。

const buf1 = Buffer.alloc(100);
//指定大小      

使用Buffer類

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

string - 寫入緩沖區的字元串。

offset - 緩沖區開始寫入的索引值,預設為 0 。

length - 寫入的位元組數,預設為 buffer.length

encoding - 使用的編碼。預設為 'utf8' 。

const buf1 = Buffer.alloc(100);
var xx = buf1.write('堅毅的小解同志'); //傳回的是位元組數
console.log(buf1);  //顯示二進制位元組占用情況
console.log('位元組數' + xx);
console.log(buf1.toString());      
【Node.JS】buffer類緩沖區

七個漢字,一共占有了21個位元組,一個漢字占三個自己,在unicode編碼格式中一個漢字占兩個位元組,在預設的utf-8中一個漢字占三個位元組。我們可以通過toString這個方法來将二進制轉化為字元串。

buffer類在實際應用中不多,當所修改的内容較為龐大的時候,我們可以采取這種二進制數組來修改内容,不會像replace産生新的數組。

例 

const buf1 = Buffer.alloc(100);
var xx = buf1.write('aello,World'); //傳回的是位元組數
buf1[0] = 72;
console.log(buf1);  //顯示二進制位元組占用情況
console.log('位元組數' + xx);      

通過二進制ASCII碼來替換首字母。

【Node.JS】buffer類緩沖區

 中間的逗号是中文的逗号 是以一共13個位元組。

直接使用buffer類

var xx = Buffer.from('aellow,World'); 
xx[0] = 72;
console.log(xx);  //顯示二進制位元組占用情況
console.log(xx.toString());      

繼續閱讀