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-8


/*
十六进制: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总结点:

  1. Buffer的结构和数组很像,操作方法也和数组很类似。
  2. Buffer中是以二进制的方式储存数据的
  3. Buffer是Node自带的,不需要引入,直接可以使用。

原文地址:https://segmentfault.com/a/1190000016901266

Node.js中的Buffer的更多相关文章

  1. 学废了系列 - WebGL与Node.js中的Buffer

    WebGL 和 Node.js 中都有 Buffer 的使用,简单对比记录一下两个完全不相干的领域中 Buffer 异同,加强记忆. Buffer 是用来存储二进制数据的「缓冲区」,其本身的定义和用途 ...

  2. node.js中的buffer.fill

    buffer.fill(value, [offset], [end]) 接收参数: value           将要填充的数据 offet           填充数据的开始位置,不指定默认为 0 ...

  3. Node.js缓冲模块Buffer

    前言 Javascript是为浏览器而设计的,能很好的处理unicode编码的字符串,但对于二进制或非unicode编码的数据就显得无能为力. Node.js继承Javascript的语言特性,同时又 ...

  4. Node.js系列:Buffer类的使用

    客户端JavaScript中没有对二进制数据提供很好的支持.但是在处理TCP流或文件流时,必须要处理二进制数据.Node.js定义了一个Buffer类,用来创建一个专门存放二进制数据的缓存区. Buf ...

  5. node.js中Buffer缓冲器的使用

    一.什么是Buffer Buffer缓冲器是用来存储输入和输出数据的一段内存.js语言没有二进制数据类型,在处理TCP和文件流的时候,就不是很方便了. 所以node.js提供了Buffer类来处理二进 ...

  6. 在Node.js中使用RabbitMQ系列二 任务队列

    在上一篇文章在Node.js中使用RabbitMQ系列一 Hello world我有使用一个任务队列,不过当时的场景是将消息发送给一个消费者,本篇文章我将讨论有多个消费者的场景. 其实,任务队列最核心 ...

  7. Node.js之使用Buffer类处理二进制数据

    Node.js之使用Buffer类处理二进制数据 Buffer类可以在处理TCP流或文件流时处理二进制数据,该类用来创建一个专门存放二进制数据的缓存区. 1. 创建Buffer对象 1.1 直接创建: ...

  8. node.js中process进程的概念和child_process子进程模块的使用

    进程,你可以把它理解成一个正在运行的程序.node.js中每个应用程序都是进程类的实例对象. node.js中有一个 process 全局对象,通过它我们可以获取,运行该程序的用户,环境变量等信息. ...

  9. node.js中使用http模块创建服务器和客户端

    node.js中的 http 模块提供了创建服务器和客户端的方法,http 全称是超文本传输协议,基于 tcp 之上,属于应用层协议. 一.创建http服务器 const http = require ...

随机推荐

  1. bzoj 3456: 城市规划【NTT+多项式求逆】

    参考:http://blog.miskcoo.com/2015/05/bzoj-3456 首先推出递推式(上面的blog讲的挺清楚的),大概过程是正难则反,设g为n个点的简单(无重边无自环)无向图数目 ...

  2. UVA1437 String painter

    传送门 我们先考虑从一个空白串变成\(B\),这样的话用区间dp,区间dp,设\(f[l][r]\)表示区间\((l,r)\)的最小次数,当\(l==r\)时为\(1\),当\(s[l]==s[r]\ ...

  3. [App Store Connect帮助]七、在 App Store 上发行(2.4)设定价格与销售范围:安排价格调整

    如果您拥有<付费应用程序协议>,则可以为您的 App 安排随时间推移的价格调整.您可以安排具有明确开始日期和结束日期的定价调整,以及没有结束日期的永久性定价调整.例如,您可以设置一个为期 ...

  4. centos 6.4 源码安装php5.4 mysql5.5 apahce2

    centos 6.4 源码安装php5.4 mysql5.5 apahce2 博客分类: php   参考:http://blog.csdn.net/simpleiseasy/article/deta ...

  5. MVC、MVP和MVVM的更简单易懂的理解

    本篇转自网络: 一.MVC MVC模式的意思是,软件可以分成三个部分. 视图(View):用户界面. 控制器(Controller):业务逻辑 模型(Model):数据保存 各部分之间的通信方式如下. ...

  6. [Usaco2005 Feb]Feed Accounting 饲料计算

    Description Farmer John is trying to figure out when his last shipment of feed arrived. Starting wit ...

  7. 题解报告:hdu 1235 统计同成绩学生人数

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1235 Problem Description 读入N名学生的成绩,将获得某一给定分数的学生人数输出. ...

  8. 题解报告:hdu 2069 Coin Change(暴力orDP)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2069 Problem Description Suppose there are 5 types of ...

  9. 414 Third Maximum Number 第三大的数

    给定一个非空数组,返回此数组中第三大的数.如果不存在,则返回数组中最大的数.要求算法时间复杂度必须是O(n).示例 1:输入: [3, 2, 1]输出: 1解释: 第三大的数是 1.示例 2:输入: ...

  10. 2017广东工业大学程序设计竞赛决赛 H tmk买礼物

    题意: Description 今天是校赛的日子,为了庆祝这么喜庆的日子,TMK打算买些礼物给女票LSH庆祝一下. TMK进入了雪梨超市,然后刚踏入的一瞬间,店主就对TMK说:“恭喜你成为了本店第21 ...