Node.js Buffer模块功能及常用方法实例分析


Posted in Javascript onJanuary 05, 2019

本文实例讲述了Node.js Buffer模块功能及常用方法。分享给大家供大家参考,具体如下:

Buffer模块

alloc()方法

alloc(size,fill,encoding)可以分配一个大小为 size 字节的新建的 Buffer,size默认为0

var buf = Buffer.alloc(10);

参数fill为填充的数据,只要指定了fill就会调用Buffer.fill(fill) 初始化这个Buffer对象

var buf = Buffer.alloc(10,0xff);//可以为十六进制的数据

allocUnsafe()方法

Unsafe(size)顾名思义就是不安全的方法,因为以这种方式创建的 Buffer 实例的底层内存是未初始化的。甚至可能包含到敏感数据,所以通过fill()方法帮助初始化

buf = Buffer.allocUnsafe(10);
buf.fill(0);

allocUnsafeSlow()方法

allocUnsafeSlow()就是不从buffer缓冲区里分配,直接从操作系统分配,Slow指的是没有从缓冲池里高效分配

buf = Buffer.allocUnsafeSlow(10);

from()方法

from()方法可以分配一个buffer对象,用来存放这个字符串的二进制对象,因此Buffer的内容可以通过[]进行访问

buf = Buffer.from("HelloWorld!");//from(array)
console.log(buf);
buf = Buffer.from([123,22,24,36]);
console.log(buf);
//重建一个buffer,把原来Buffer的数据拷贝给新的buffer
buf2 = Buffer.from(buf);
console.log(buf2);
//buf[index] index取值范围[0,len-1]
console.log(buf[0],buf[1]);

大尾与小尾形式写入存储

writeInt32BE(value,offset)第一个参数为写入的数据,第二个参数从哪个位置开始写入 ,表示其以大尾(大端)形式写入
writeInt32LE(value,offset)以小尾(小端)的形式写入数据

//以大尾的形式存放,4个字节的整数
buf.writeInt32BE(65535,0);
console.log(buf);
//以小尾的方式写入
buf.writeInt32LE(65535,0);
console.log(buf);

大尾小尾形式读取数据

readInt32LE(offset)是指以小尾整型形式读取数据
readFloatLE(offset)是指以小尾浮点形式读取数据

var value = buf.readInt32LE(0);
console.log(value);
buf.writeFloatLE(3.16,0);
console.log(buf.readFloatLE(0));

读取数据的各种方式

//读取长度
var len = Buffer.byteLength("HelloWorld");
console.log(len);
buf = Buffer.alloc(4*4);
buf.writeInt32LE(65535,0);
buf.writeInt32LE(65535,4);
buf.writeInt32LE(65535,8);
buf.writeInt32LE(65535,12);
console.log(buf);
buf.swap32();
console.log(buf);
//用高位的方式读取
console.log(buf.readInt32BE(0));
console.log(buf.readInt32BE(4));
console.log(buf.readInt32BE(8));
console.log(buf.readInt32BE(12));
for (var i of buf.values()) {
  console.log(i);
}

转换

//以二进制方式转为字符串
console.log(buf.toString('hex'));
console.log(buf.toJSON());
buf.fill('A');
console.log(buf);
console.log(buf.toString('utf8'));

希望本文所述对大家nodejs程序设计有所帮助。

Javascript 相关文章推荐
jquery模拟SELECT下拉框取值效果
Oct 23 Javascript
javascript版2048小游戏
Mar 18 Javascript
javascript实现类似于新浪微博搜索框弹出效果的方法
Jul 27 Javascript
jQuery实现滑动页面固定顶部显示(可根据显示位置消失与替换)
Oct 28 Javascript
JavaScript函数节流的两种写法
Apr 07 Javascript
基于 D3.js 绘制动态进度条的实例详解
Feb 26 Javascript
详解PHP后期静态绑定分析与应用
Mar 21 Javascript
利用Console来Debug的10个高级技巧汇总
Mar 26 Javascript
详解vue 数组和对象渲染问题
Sep 21 Javascript
基于jQuery实现挂号平台首页源码
Jan 06 jQuery
JavaScript设计模式之策略模式实现原理详解
May 29 Javascript
Vue h函数的使用详解
Feb 18 Vue.js
Node.js net模块功能及事件监听用法分析
Jan 05 #Javascript
JS无限级导航菜单实现方法
Jan 05 #Javascript
JSON字符串操作移除空串更改key/value的介绍
Jan 05 #Javascript
JavaScript常见事件对象与操作实例总结
Jan 05 #Javascript
JavaScript常见事件处理程序实例总结
Jan 05 #Javascript
JavaScript代码调试方法实例小结
Jan 05 #Javascript
JavaScript实现连连看连线算法
Jan 05 #Javascript
You might like
PHP实现通过get方式识别用户发送邮件的方法
2015/07/16 PHP
ECMAScript 基础知识
2007/06/29 Javascript
学习ExtJS Panel常用方法
2009/10/07 Javascript
不同浏览器对回车提交表单的处理办法
2010/02/13 Javascript
基于JQuery.timer插件实现一个计时器
2010/04/25 Javascript
精心挑选的15款优秀jQuery 本特效插件和教程
2012/08/06 Javascript
javascript中的onkeyup和onkeydown区别介绍
2013/04/28 Javascript
js控制frameSet示例
2013/09/10 Javascript
jQuery实现的网页竖向菜单效果代码
2015/08/26 Javascript
jquery实现表格中点击相应行变色功能效果【实例代码】
2016/05/09 Javascript
简单分析javascript中的函数
2016/09/10 Javascript
jQuery Easy UI中根据第一个下拉框选中的值设置第二个下拉框是否可以编辑
2016/11/29 Javascript
分析JS单线程异步io回调的特性
2017/12/01 Javascript
js判断文件类型大小并给出提示的实现方法
2018/01/03 Javascript
Vue2.5通过json文件读取数据的方法
2018/02/27 Javascript
vue中eslintrc.js配置最详细介绍
2018/12/21 Javascript
微信小程序使用for循环动态渲染页面操作示例
2018/12/25 Javascript
Js通过AES加密后PHP用Openssl解密的方法
2019/07/12 Javascript
Electron实现应用打包、自动升级过程解析
2020/07/07 Javascript
[03:28]2014DOTA2国际邀请赛 EG战队官方纪录片
2014/07/21 DOTA
python求素数示例分享
2014/02/16 Python
Python实现网站注册验证码生成类
2017/06/08 Python
Python中循环引用(import)失败的解决方法
2018/04/22 Python
python使用xlsxwriter实现有向无环图到Excel的转换
2018/12/12 Python
详解Python给照片换底色(蓝底换红底)
2019/03/22 Python
python实现名片管理系统项目
2019/04/26 Python
11个Python3字典内置方法大全与示例汇总
2019/05/13 Python
基于Python的OCR实现示例
2020/04/03 Python
Python控制鼠标键盘代码实例
2020/12/08 Python
唤醒头发毛囊的秘密武器:Grow Gorgeous
2016/08/28 全球购物
yy婚礼主持词
2014/03/14 职场文书
财务内勤岗位职责
2014/04/17 职场文书
合作经营协议书范本
2014/09/16 职场文书
国际贸易本科毕业生求职信
2014/09/26 职场文书
用python画城市轮播地图
2021/05/28 Python
vue选项卡切换的实现案例
2022/04/11 Vue.js