您的位置:首页 > Web前端 > Node.js

初识nodejs10

2017-08-07 14:53 120 查看

Buffer的创建 和使用

buffer 英[ˈbʌfə(r)]

美[ˈbʌfɚ]

n. 缓冲器; 起缓冲作用的人(或物); [化] 缓冲液,缓冲剂; [计] 缓冲区;

vt. 缓冲; [化]把缓冲液加入(溶液);

[例句]Keep savings as a buffer against unexpected cash needs

存些积蓄以备不时之需。

[其他] 第三人称单数:buffers 复数:buffers 现在分词:buffering 过去式:buffered 过去分词:buffered

一个操作二进制数据的类,我们在操作文件,或者网络数据的时候,实际上操作的是二进制数据流,Node 为我们提供了一个更加方便的去操作这种数据流的类Buffer,他是一个全局的类;

new Buffer(size);数字

new Buffer(array)数组

new Buffer(string,[encoding])字符串 ;编码方式;

这个类使用起来,有点类似数组的意思,相似,但是不是数组.

new Buffer(size); —— size[Number] ——创建一个Buffer对象,并且为这个对象分配一个大小.

当我们为一个Buffer对象分配一个空间大小的时候,,其长度是固定的,不可以更改.

16进制的
<Buffer 6d 69 61 6f 76>

109

105

97

111

118
2进制的

var bf=new Buffer("miaov","utf-8");
console.log(bf);

for(var i=0; i<bf.length; i++){
console.log(bf[i]);
}


转化成16进制的编码方式:

var bf=new Buffer("miaov","utf-8");
console.log(bf);

for(var i=0; i<bf.length; i++){
console.log(bf[i].toString(16));
}
<Buffer 6d 69 61 6f 76>
6d
69
61
6f
76```


操作2进制变成字符串的方法;

var bf=new Buffer("miaov","utf-8");
console.log(bf);

for(var i=0; i<bf.length; i++){
//console.log(bf[i].toString(16));
console.log(String.fromCharCode( bf[i]));
}
<Buffer 6d 69 61 6f 76>
m
i
a
o
v


一个中文汉字的占用为3个字节长度;

var str1= "miaov";
var bf1= new Buffer("miaov");
console.log(str1.length);
console.log(bf1.length);

var str2= "妙味";
var bf2=new Buffer("妙味");
console.log(str2.length);
console.log(bf2.length);


所以,你要取得的,是字符串的长度,还是,字节的长度,他们之间还是有很大的区别的.

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  buffer