Buffer类概述 数组
一个用于更好的操做二进制数据的类 咱们在操做文件或者网络数据的时候,其实操做的就是二进制数据流网络
Node为咱们提供了一个更加方便的去操做这种数据流的类 Buffer,他是一个全局的类,不须要引入后才能使用,能够直接使用编码
Buffer类的构造方法spa
new Buffer(size)3d
分配一个新的buffer大小是size的8位字节,参数size是一个Number类型的(相似数组的长度),一个长度表示1个字节对象
建立一个Buffer对象,并为这个对象分配一个大小,当咱们为一个Buffer对象分配了大小以后,其长度是固定不变的,不能更改blog
打印出来的结果是以16进制的方式打印的索引
new Buffer(array)utf-8
分配一个新的Buffer使用一个8位字节Array数组字符串
给某角标赋值
new Buffer(string, [encoding])
存储一个字符串的时候,须要告诉Buffer一个编码,不一样编码结果是不同的,默认编码是utf-8
Node里面并非支持全部编码,支持的编码有:ascll/utf16le/ucs2/base64/binary/hex
这里直接打印出来的是十六进制的表示
Buffer的属性
Buffer的length属性和buf[index]
buf.length : buffer的bytes大小
buf[index] : 获取或者设置在指定index索引位置的8位字节内容
Buffer的length属性须要注意的地方
这个length的属性指的不是字符的长度,而是字节的长度(buffer的bytes大小).一个中文是3个字节
根据参数 offset 偏移量和指定的encoding编码方式,将参数 string 数据写入buffer
buf.write(要写入的字符串, 从Buffer对象中的几位开始写入, 写入的字符串的长度, 写入的字符串的编码)
标准输入输出流中其实也是使用了Buffer