Buffer类
时间:2019-09-26
本文章向大家介绍Buffer类,主要包括Buffer类使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Buffer的基本操作:
Buffer本质上就是字节数组,Buffer对象是Node处理二进制数据的一个接口。
它是Node原声提供的全局对象,可以直接使用,不需要require('buffer')。
1.实例化:(静态方法)
Buffer.from(array)
Buffer.from(string)
Buffer.alloc(size)
2.功能方法:(静态方法)
Buffer.isEncoding('编码类型(如UTF8)') 判断是否支持该编码
Buffer.isBuffer(obj) 判断是否为Buffer,传入的必须是一个对象
Buffer.byteLength() 返回制定编码的字节长度,默认UTF8
Buffer.concat() 将一组Buffer对象合并为一个Buffer对象
3.实例方法:
write()
slice()
toString()
toJson()
//实例化buf对象 let buf = Buffer.alloc(5); //分配五个字节,并都初始化为0 console.log(buf); //打印结果:<Buffer 00 00 00 00 00> //字符串 let buf = Buffer.from('buffer'); //分配的是一个字符串 let buf = Buffer.from('buffer','utf-8'); //两者打印结果一样 console.log(buf); //静态方法 console.log(Buffer.isEncoding('utf8')); //打印结果:true console.log(Buffer.isEncoding('gbk')); //打印结果:false let buf = Buffer.from('hello'); console.log(Buffer.isBuffer(buf)); //打印结果:true console.log(Buffer.isBuffer({str:'hi'})); //打印结果:false let buf = Buffer.from('中国','utf8'); console.log(Buffer.byteLength(buf)); //打印结果:6 let buf1 = Buffer.alloc(3); let buf2 = Buffer.alloc(5); let buf3 = Buffer.concat([buf1,buf2]); //拼接 console.log(Buffer.byteLength(buf3)); //打印结果:8 8个字节 let buf1 = Buffer.from('hello'); let buf2 = Buffer.from('hi'); let buf3 = Buffer.concat([buf1,buf2]); //拼接 console.log(Buffer.byteLength(buf3)); //打印结果:7 7个字节 console.log(buf3.toString()); //打印结果:hellohi //实例方法 let buf = Buffer.alloc(5); //第一个参数为要写入的字符串 //第二个参数为起始位置,默认为0 //第三个参数为要写入的长度,默认为字符串的长度减去起始位置 //第四个参数为编码,默认为'utf8' buf.write('hello',2,3); //<Buffer 00 00 68 65 6c> buf.write('hello'); //<Buffer 68 65 6c 6c 6f> let buf = Buffer.from('hello'); //切片: //第一个参数为起始位置,默认为0 //第二个参数为结束位置,默认为字符串的长度 let buf1 = buf.slice(2,3); console.log(buf1.toString()); //打印结果:l //toJSON方法不需要显示调用,当 const buf = Buffer.from('ahello'); const json = JSON.stringify(buf); console.log(json); //打印结果:{"type":"Buffer","data":[104,101,108,108,111]} 将字符串转化为十进制的数值 const buf = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5]); const json = JSON.stringify(buf); console.log(json); //打印结果:{"type":"Buffer","data":[1,2,3,4,5]}
原文地址:https://www.cnblogs.com/zcy9838/p/11589857.html
- 异步方式访问网页
- Silverlight:利用Panel实现自定义布局
- 《物联网智能终端信息安全白皮书》再次敲响物联网时代警钟
- Gitlab可视化代码树插件-Octotree
- 子线程调用UI线程的方法
- Silverlight:Dependency Property(依赖属性)学习笔记
- Silverlight:利用异步加载Xap实现自定义loading效果
- Docker容器学习梳理--手动制作系统镜像
- 怎样裁剪图片的局部
- vb中实现最佳按钮效果
- silverlight:wcf双工通讯学习笔记
- Docker容器学习梳理--web管理工具DockerUI部署记录
- Docker容器学习梳理-容器硬盘热扩容
- 检测到Loaderlock的问题
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- [手把手系列之二]实现多层神经网络
- 使用SystemVerilog简化FPGA中的接口
- 想用深度学习谱写自己的音乐吗?这篇指南来帮你!(附代码)
- 你不是说你会aop吗?
- 开源:推荐一个不错的离线IP地址定位库
- 武磊告别西甲!Python带你解读「全村的希望」武磊职业数据
- 谁在崛起,谁在没落?新一线城市竞争力盘点,用Python绘制动态图带你看懂!
- 两数相加
- 这样设置 IDEA,让你爽到飞起!
- Tensorflow基础入门十大操作总结
- Spring Boot 2.x基础教程:使用EhCache缓存集群
- 白平衡初探
- Activity的启动过程详解(基于10.0源码)
- Activity生命周期-你真的了解吗?
- Activity启动模式