0%

Buffer类

  • 其中以16进制显示2进制数据

    创建Buffer对象

  • 三种创建方法

    1. 将缓存区大小指定为参数

      1
      new Buffer(size)

      初始化缓存区

      1
      buf.fill(value, [offset], [end])

      第一个参数为填充数值,第二个参数为填充开始位置,第三个为结束位置

    2. 使用数组来初始化

      1
      new Buffer(array)
    3. 使用字符串来初始化缓存区

      1
      new Buffer(str,[encoding]) 

      第一个参数为初始化所需的字符串,第二个为文字编码格式组字符串,默认“utf8”


字符串长度与缓存区长度

  • 字符串长度是字的个数,缓存区长度为字节数
  • Buffer的slice方法不会复制数据,而是共享数据

    Buffer与字符串相互转换

  • toString方法,将Buffer对象中的数据转换为字符串
    1
    buf.toSring([encoding], [start], [end])

    第一个参数为文字编码格式,第二第三个为起始与终止位置

  • write方法,向已经创建的Buffer对象写入字符串
    1
    buf.write(string, [offset], [length], [encoding])

    第一个参数为需要写入的字符串,第二个为写入位置,起于第1+offset个字节开始到offset+length个字节结束

  • StringDecoder对象的write方法,对象须安装

复制缓存数据

  • 使用copy方法可以把一个Buffer的内容复制到另一个Buffer中
    1
    buf.copy(targetBuffer, [targetStart], [sourceStart], [sourceEnd])

Buffer类的类方法

  • isBuffer判断一个对象是否为Buffer对象
    1
    Buffer.isBuffer(obj)
  • byteLength计算一个字符串的字节数
    1
    Buffer.byteLength(string, [encoding])

    第一个参数为要计算的字符串,第二个参数为编码方式,默认为utf8

  • concat方法用于将几个Buffer对象结合创建为一个新的对象
    1
    Buffer.concat(list, [totalLength])

    第一个参数为存放多个Buffer对象的数组,第二个参数为被创建对象的总长度

  • isEncoding方法,检测一个字符串是否为一个有效的编码格式字符串
    1
    Buffer.isEncoding(encoding)

#node