Node.js中的Buffer

Buffer介紹

爲何要用Buffer?前端

  1. 在Node/ES6 出現以前,前端工程師只須要進行一些簡單的額字符串或者ODM操做就能夠知足業務需求了,全部對二進制數據比較陌生。
  2. 在node出現以後,前端工程師面對的技術場景發送了變化,能夠深刻到網絡傳輸、文件操做、圖片處理等領域。而這些操做與二進制數據緊密相關。
  3. 在Node中的Buffer,是一個二進制數據容器,數據結構和數組相似,專門用於Node中的數據放。

新建Buffer

Buffer.alloc(size[, fil[,encoding]]) size:新建的buffer指望的長度 fill用來預填充新建的Buffer的值 默認0 encoding: 編碼格式 默認:utf-8node

/*
        十六進制:00- ff
        十進制 :0- 255
        二進制: 00000000- 11111111
        0 / 1 表明一位 == 比特 
        8bit = 1B
        1kb = 1024 B
        1mkb= 1024Kb
        1GB = 1024m
        1TB = 1024GB

*/

// 2. Buffer.alloc(size[, fill[, encoding]])
/*
類數組使用便可 可遍歷 可選擇下標等等
初始化: 肯定的長度 不能改變
填充值

*/
let buffer2= Buffer.alloc(10);//建立了一個長度是10的buffer
buffer2[0]= 10;//能夠像使用數組同樣使用buffer 
buffer2[1]= oxfc;//傳一個十六進制的直接取後兩位 fc
buffer2[30]= 1;//這點和數組不一樣 溢出隱藏 
console.log(buffer2);
複製代碼

Buffer使用

**使用新方法使用Buffer **數組

  1. Buffer.form(str):將一個字符串轉換成buffer
  2. Buffer.alloc(size):建立一個指定大小的buffer
  3. Buffer.alloUnsafe(size):建立一個指定大小的buffer,可是可能包含敏感數據。
// 歷史方法
// let buffer = new Buffer(10);//相似 Array(10) 建立十個空間
// console.log(buffer)// <Buffer 00 00 00 00 00 00 00 00 00 00>

//1. 字符串轉成二進制
let str= 'www.zhangningle.top';
let buffer= Buffer.from(str);
console.log(buffer);//<Buffer 77 77 77 2e 7a 68 61 6e 67 6e 69 6e 67 6c 65 2e 74 6f 70>
//把buffer轉成十進制的
console.log(buffer.toString())//www.zhangningle.top
// 漢字轉換成二進制後 一個漢字要用三個字節表示

複製代碼

Buffer總結點:bash

  1. Buffer的結構和數組很像,操做方法也和數組很相似。
  2. Buffer中是以二進制的方式儲存數據的
  3. Buffer是Node自帶的,不須要引入,直接可使用。
相關文章
相關標籤/搜索