node——buffer
buffe方便数据的传输,可一次性传输一部分数据
一.类型介绍
1.javascript语言没有读取或操作二进制数据的机制。
2.Node.js中引入了Buffer类型可以使我们操作TCP流或文件流
3.Buffer类型的对象类似于整数组,但是Buffer的大小是固定的、且在V8堆外分配物理内存。BUffer的大小在被创建时确定,且无法调整(buf.length是固定的,不允许被修改)
4.Buffer是全局的,所以使用的时候无需require的方式来加载
二,创建BUffer对象
1.通过Buffer.from()创建一个Buffer对象
Buffer.from(string[,encoding])
var arry=[0x68,0x6c,0x6c,0x6f,0x20];
var buf=Buffer.from(arry);//转为Buffer类型
console.log(buf);
console.log(buf.toString('utf8'));
var buff=Buffer.from('你好!');
console.log(buff);
console.log(buff.toString('utf8'));

2.拼接多个Buffer对象为一个对象
var arry=[0x68,0x6c,0x6c,0x6f,0x20];
var buf=Buffer.from(arry);//转为Buffer类型 var buff=Buffer.from('你好!'); var bufferlist=[buf,buff];
var buffe=Buffer.concat(bufferlist);
console.log(buffe.toString('utf8'));

3.获取字符串对应字节个数
一个中文3个字节,一个数字或英文或符号1个字节
var len=Buffer.byteLength('hello世界!');
console.log(len);
len=12
4.判断一个对象是否为Buffer类型对象
Buffer.isBuffer(obj)
返回是true则为Buffer,反之不是
5.获取Buffer中对应的字节(buf为对象名)
buf[index]
类似数组
6.获得Buffer对象中的字节个数(buf为对象名)
buf.length
buf.length属性不可修改
7.Buffer对象与编码
Node.js目前支持的编码如下:
1.ascil
2.utf8
3.utf16le
。ucs2是utf16le的别名
4.base64
5.latin1
。binary是Latin1的别名
6.hex
。用两位16进制来表示每个字节
var buf1=Buffer.from('你好世界,Hello World!','utf8');
console.log(buf1.toString('hex'));
console.log(buf1.toString('base64'));
console.log(buf1.toString('utf8'));

node——buffer的更多相关文章
- Node.Buffer
介绍 Buffer是一个典型的javascript与c++结合的模块,它将性能相关的部分用c++实现,将非性能相关的部分用javascript实现. 纯 JavaScript 对 Unicode 友好 ...
- Node buffer模块缓冲区
//1:字节 byte//1024b = 1kb [千字节]//1024kb = 1mb [兆字节]//1024mb = 1gb [吉字节]//1024gb = 1tb [梯]//1024tb = 1 ...
- node Buffer.byteLength()
Buffer.byteLength(string[, encoding]) string {String} | {Buffer} | {TypedArray} | {DataView} | {Arra ...
- Node Buffer 利用 slice + indexOf 生成 split 方法
demo let buf = Buffer.from('你你我们我你们'); Buffer.prototype.split = function (seq) { let arr=[]; let len ...
- Node.js Buffer
Buffer(缓冲区) JavaScript 语言自身只有字符串数据类型,没有二进制数据类型. 但在处理像TCP流或文件流时,必须使用到二进制数据.因此在 Node.js中,定义了一个 Buffer ...
- Node.js Buffer(缓冲区)
JavaScript 语言自身只有字符串数据类型,没有二进制数据类型. 但在处理像TCP流或文件流时,必须使用到二进制数据.因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门 ...
- 8、Node.js Buffer(缓冲区)
内容:Buffer与字符编码,Buffer创建.写入.读取.转换成JSON对象.合并.比较.拷贝.裁剪.长度 Buffer 与字符编码Buffer 实例一般用于表示编码字符的序列,比如 UTF-8 . ...
- 【node.js】Buffer(缓冲区)
Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区. 创建 Buffer 类 Node Buffer 类可以通过多种方式来创建. 1.创建长度为 10 字节的 ...
- Node.js:Buffer(缓冲区)介绍及常用方法
JavaScript 语言自身只有字符串数据类型,没有二进制数据类型. 但在处理像TCP流或文件流时,必须使用到二进制数据.因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门 ...
随机推荐
- Atcoder AGC031B Reversi (DP计数)
简单的计数题.(总算做出一道AGC的B题了,然而这场比赛我忘记打了233333) 题目链接: https://atcoder.jp/contests/agc031/tasks/agc031_b 题意: ...
- dubbo-刷一遍用户指南(三)
想更好的使用dubbo,最好刷几遍用户指南,dubbo用户指南几乎包含了所有dubbo所有的特性 用户指南地址:https://dubbo.gitbooks.io/dubbo-user-book/de ...
- 转载 - KMP算法祥解
出处:http://www.cppblog.com/oosky/archive/2006/07/06/9486.html KMP字符串模式匹配详解 来自CSDN A_B_C_ABC 网友 KM ...
- 【ACM】hdu_zs3_1005_String Matching_201308100920
String Matching Time Limit : 2000/1000ms (Java/Other) Memory Limit : 20000/10000K (Java/Other)Tota ...
- VS的代码管理工具
参考文章 可以从中知道修改代码段是要打开相关路径下的文档来修改 官方下载地址 百度云盘 如果项目中国有一些代码重复率非常高,可以把这些代码做成snippet代码段,简化成快捷键命令,加速开发
- ZOJ 3494
超级神奇有趣题. AC自动机+数位DP.其实,数位DP在处理含有某些数字时特别不好处理,应该把它倒转为求不含有.这道题把数位DP+AC自动机结合起来,实在是很巧妙,把数字变为串来处理,强大! 要使用A ...
- hdu4861 Couple doubi---2014 Multi-University Training Contest 1
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4861 Couple doubi Time Limit: 2000/1000 MS (Java/Othe ...
- JS 中构造函数和普通函数的区别(详)
1.构造函数也是一个普通函数,创建方式和普通函数一样,但构造函数习惯上首字母大写 2.构造函数和普通函数的区别在于:调用方式不一样.作用也不一样(构造函数用来新建实例对象) 3.调用方式不一样. 普通 ...
- 使用NPOI实现简单的Excel导出功能
[1]NPOI是啥? NPOI是指构建在POI 3.x版本之上的一个程序,NPOI可以在没有安装Office的情况下对Word或Excel文档进行读写操作. POI是一个开源的Java读写Excel. ...
- java8-2-Lambda表达式
java8的lambda表达式:使得代码更加紧凑:修改方法的能力:更好的支持多核处理(并行处理函数和filter\map\reduce) 例子1: java7中,list集合排序: public st ...