nodejs第二天之Buffer类

时间:2023-11-23 13:04:02

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

2.2三种调用方式

1.new Buffer(size) 创建一个Buffer对象并为该分配一个大小,当我们为Buffer设定一个大小的时候,其长度是固定的,不能更改

2.new Buffer(array)

3.new Buffer(string,[encoding]);

nodejs第二天之Buffer类

2.3 Buffer(string,[encoding])的长度为字节长度而不是字符的长度

nodejs第二天之Buffer类

2.4Buffer的操作方法

2.4.1向Buffer中添加数据

var str = ‘hhhh’;

var bf = new Buffer(5);

Bf.write(str);

write(要写入的字符串,Buffer的偏移量,字符串的长度,字符串的编码)

nodejs第二天之Buffer类

2.4.2 Buffer的tostring方法

nodejs第二天之Buffer类

如果是中文 注意下截取问题 因为一个汉字是三个字节

2.4.2 Buffer的slice方法

nodejs第二天之Buffer类

注意: 新的Buffer会和新的Buffer引用相同的地址,所以如果截取后的Buffer会影响到旧的Buffer对象,如果想不影旧的Buffer对象的值请使用copy对象

nodejs第二天之Buffer类

2.4.3Buffer的copy方法

nodejs第二天之Buffer类

copy的四个参数的意义:

Copy(要拷贝的Buffer,从新Buffer的第几位开始拷贝,从被拷贝Buffer的第几位开始拷贝,到被拷贝Buffer的第几位结束)

nodejs第二天之Buffer类

3.Buffer的静态方法(不需要new实例化)

nodejs第二天之Buffer类

nodejs第二天之Buffer类