Node.js中的Buffer
Buffer介绍
为什么要用Buffer?
- 在Node/ES6 出现之前,前端工程师只需要进行一些简单的额字符串或者ODM操作就可以满足业务需求了,所有对二进制数据比较陌生。
- 在node出现之后,前端工程师面对的技术场景发送了变化,可以深入到网络传输、文件操作、图片处理等领域。而这些操作与二进制数据紧密相关。
- 在Node中的Buffer,是一个二进制数据容器,数据结构和数组类似,专门用于Node中的数据放。
新建Buffer
Buffer.alloc(size[, fil[,encoding]])
size
:新建的buffer期望的长度fill
用来预填充新建的Buffer的值 默认0encoding
: 编码格式 默认: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
- Buffer.form(str):将一个字符串转换成buffer
- Buffer.alloc(size):创建一个指定大小的buffer
- 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总结点:
- Buffer的结构和数组很像,操作方法也和数组很类似。
- Buffer中是以二进制的方式储存数据的
- Buffer是Node自带的,不需要引入,直接可以使用。
原文地址:https://segmentfault.com/a/1190000016901266
Node.js中的Buffer的更多相关文章
- 学废了系列 - WebGL与Node.js中的Buffer
WebGL 和 Node.js 中都有 Buffer 的使用,简单对比记录一下两个完全不相干的领域中 Buffer 异同,加强记忆. Buffer 是用来存储二进制数据的「缓冲区」,其本身的定义和用途 ...
- node.js中的buffer.fill
buffer.fill(value, [offset], [end]) 接收参数: value 将要填充的数据 offet 填充数据的开始位置,不指定默认为 0 ...
- Node.js缓冲模块Buffer
前言 Javascript是为浏览器而设计的,能很好的处理unicode编码的字符串,但对于二进制或非unicode编码的数据就显得无能为力. Node.js继承Javascript的语言特性,同时又 ...
- Node.js系列:Buffer类的使用
客户端JavaScript中没有对二进制数据提供很好的支持.但是在处理TCP流或文件流时,必须要处理二进制数据.Node.js定义了一个Buffer类,用来创建一个专门存放二进制数据的缓存区. Buf ...
- node.js中Buffer缓冲器的使用
一.什么是Buffer Buffer缓冲器是用来存储输入和输出数据的一段内存.js语言没有二进制数据类型,在处理TCP和文件流的时候,就不是很方便了. 所以node.js提供了Buffer类来处理二进 ...
- 在Node.js中使用RabbitMQ系列二 任务队列
在上一篇文章在Node.js中使用RabbitMQ系列一 Hello world我有使用一个任务队列,不过当时的场景是将消息发送给一个消费者,本篇文章我将讨论有多个消费者的场景. 其实,任务队列最核心 ...
- Node.js之使用Buffer类处理二进制数据
Node.js之使用Buffer类处理二进制数据 Buffer类可以在处理TCP流或文件流时处理二进制数据,该类用来创建一个专门存放二进制数据的缓存区. 1. 创建Buffer对象 1.1 直接创建: ...
- node.js中process进程的概念和child_process子进程模块的使用
进程,你可以把它理解成一个正在运行的程序.node.js中每个应用程序都是进程类的实例对象. node.js中有一个 process 全局对象,通过它我们可以获取,运行该程序的用户,环境变量等信息. ...
- node.js中使用http模块创建服务器和客户端
node.js中的 http 模块提供了创建服务器和客户端的方法,http 全称是超文本传输协议,基于 tcp 之上,属于应用层协议. 一.创建http服务器 const http = require ...
随机推荐
- Excel学习 -- 函数基础
Excel函数基础 1. 单元格是函数的作用对象: 2. 函数由等号.函数表达式.操作符.参数.返回值五部分组成: 3. 商业智能报表中使用的常用函数分类:数学函数.文本函数.逻辑函数.查 ...
- 洛谷 P2766 最长不下降子序列问【dp+最大流】
死于开小数组的WA?! 第一问n方dp瞎搞一下就成,f[i]记录以i结尾的最长不下降子序列.记答案为mx 第二问网络流,拆点限制流量,s向所有f[i]为1的点建(s,i,1),所有f[i]为mx(i+ ...
- Luogu P1137 旅行计划 【拓扑排序+Dp】By cellur925
题目传送门 由于满足游览先后顺序从西到东的性质,我们很自然的想到用拓扑排序处理出一个合理的游览顺序. 然鹅,之后呢? 事实上,拓扑排序常与Dp相结合,解决后效性.我们就可以在每次拓扑入队的时候更新答案 ...
- [转]POJ WA/RE指南
"POJ上头的题都是数学题",也不知道是那个家伙胡诌的--但是POJ的要求就是算法通过了也不让你AC.下面本人就这560题的经验,浅谈一下WA/RE了怎么办. 以下内容是扯淡-- ...
- 《Windows核心编程系列》十一谈谈Windows线程池
Windows线程池 上一篇博文我们介绍了IO完成端口.得知IO完成端口可以非常智能的分派线程.但是IO完成端口仅对等待它的线程进行分派,创建和销毁线程的工作仍然需要我们自己来做. 我们自己也可以创建 ...
- Frequency of String CodeForces - 963D
http://codeforces.com/contest/963/problem/D 题解:https://www.cnblogs.com/Blue233333/p/8881614.html 记M为 ...
- 题解报告:poj 3320 Jessica's Reading Problem(尺取法)
Description Jessica's a very lovely girl wooed by lots of boys. Recently she has a problem. The fina ...
- DateFormat类
package Format_daqo; import java.util.Date; import java.text.DateFormat; public class DateFormatTest ...
- 前端组件化(二):优化 DOM 操作
看看上一节我们的代码,仔细留意一下 changeLikeText 函数,这个函数包含了 DOM 操作,现在看起来比较简单,那是因为现在只有 isLiked 一个状态.由于数据状态改变会导致需要我们去更 ...
- 对于JS == 运算的一些理解
声明:本文是摘自一篇文章,放在这只为做为一个笔记能更好学习. 大家知道,==是JavaScript中比较复杂的一个运算符.它的运算规则奇怪,容易让人犯错,从而成为JavaScript中“最糟糕的特性” ...