node学习之路(二)Buffer对象
来源:互联网 发布:国际网络加速器 编辑:程序博客网 时间:2024/06/06 20:51
在js中对于二进制数据没有进行很好的支持(前端中二进制数据用的较少)。
但是在出路TCP流和文件流数据时,二进制数据处理不可避免。因此node
定义了一个Buffer类来处理二进制数据流。
1.创建Buffer类
Buffer类和其他类的创建并无区别,只需要new其对象即可。
注:Buffer类有一个length属性,用来规定Buffer类的长度。
第一种:var buf=new Buffer(length)//可以使用buf.fill(vale,[offset],[end]);来初始化buf值
第二种:var buf=new Buffer(array)//可以直接传入一个数组
第三种:var buf=new Buffer(string,[encoding])//直接传入一个字符串形式来创建
2.字符串长度与缓存区的长度
Buffer的长度不一定与字符串的长度相同,Buffer的长度表示的是字节长度。
例:var buf=new Buffer("我是博客");
console.log(buf.length);//12
3.Buffer与字符串之间的互相转换
Buffer类中有toString([encoding],start,end)的方法来讲Buffer转成字符串
参数1:指定转换后的编码格式。参数2:开始位置。参数3:结束位置。
Buffer对象的write(string,offset,length,[encoding])方法
参数1:写入Buffer的字符串,参数2:起始位置。参数3:长度。参数4:编码方式。
4.Buffer与JSON之间的相互转换。
Buffer转换成JSON对象:
var buf=new Buffer("我是博客");
jsonStr=JSON.stringify(bus);
JSON.parse(jsonStr);
JSON对象转换成Buffer对象
var buf 2=new Buffer(JSON.parse(jsonStr));
5.Buffer与数值对象之间的相互转换
buf.writeInt8(value, offset[, noAssert])//有符号的8进制数转换
buf.writeUInt8(value, offset[, noAssert])//无符号的8进制数转换
8可以为16 32 64...
6.Buffer类中常用的方法:
1)isBuffer(obj)用于判断对象是否是一个Buffer对象
2)byteLength(string,[encoding])判断传入的字符串的字节数
3)concat 连接两个buffer对象
4)isEncoding(encoding)用于检测一个字符串是否是一个有效的编码格式字符串。
- node学习之路(二)Buffer对象
- node.js学习之路(二)之“深入理解面向对象的JavaScript”
- 学习node.js(二)—— Buffer
- node.js学习笔记之Buffer类
- Node.js8 Buffer对象
- Node体验之process对象和Buffer对象
- node.js学习(十三、Buffer模块)
- node.js基础学习--IO-对象映射(fs,Buffer)
- node之buffer
- node.js学习之路(二) 包的发布
- Buffer cache学习(二)
- BUFFER之二(37)
- Node.js中的Buffer对象
- Node.Js Buffer类(缓冲区)-(二)
- Node.js 之Buffer缓冲区
- node.js学习之路(一)之“面向对象的JavaScript入门”
- NIO学习(二) buffer
- NIO之二(Buffer&&Selector)
- hpuoj 【1043】人见人爱A+B【数学】
- Network In Network
- oracle 查看用户所在的表空间
- 梳理Ubuntu命令(文件查找和比较)---strings
- java 将数据库中的数据转化为easyUI treegrid json格式
- node学习之路(二)Buffer对象
- 小希的迷宫 (并查集)
- 基于xilinx FPGA验证ASIC可能遇到的timing问题
- 排序算法——希尔排序
- BZOJ 3529 莫比乌斯反演 + 离线 + 树状数组动态维护前缀和
- Django1.11下后台中文的显示
- 跳表SkipList
- mysql 三个表索引优化案例
- 年度最佳50句丧格言,让你看完怀疑人生