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自带的,不须要引入,直接可使用。
相关文章
相关标签/搜索