目錄
簡介
建立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());
七個漢字,一共占有了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碼來替換首字母。
中間的逗号是中文的逗号 是以一共13個位元組。
直接使用buffer類
var xx = Buffer.from('aellow,World');
xx[0] = 72;
console.log(xx); //顯示二進制位元組占用情況
console.log(xx.toString());