Loading

NodeJs-Buffer模块

Buffer

Buffer(缓冲区)是一个类似于Array的对象,用于表示固定长度的字节序列

Buffer 本质是一段内存空间,专门用来处理 二进制数据

  • Buffer 大小固定且无法调整
  • Buffer 性能较好,可以直接对计算机内存进行操作
  • 每个元素的大小为 1 字节(byte)
创建Buffer
  1. 使用alloc

    // 创建一个长度是10字节的Buffer,相当于申请了10字节的内存空间,每个字节的值是0
    let buffer = Buffer.alloc(10)
    console.log(buffer) // <Buffer 00 00 00 00 00 00 00 00 00 00>
    
  2. 使用allocUnsafe

    // 创建一个长度是10字节的Buffer
    // buffer中可能存在旧的数据,可能会影响执行结果
    // 因为内存空间是可以复用的,allocUnsafe创建的时候不会清空,alloc会对旧数据进行清空
    // allocUnsafe相比alloc性能更好
    let buffer = Buffer.allocUnsafe(10)
    
  3. 使用from

    // 通过字符串创建buffer,根据字符串Unicode码中对应的数字创建
    let buffer = Buffer.from("helloworld")
    
    
    // 通过数组创建buffer,数组中的数组会转成二进制然后创建
    let buffer = buffer.from([1,2,3,4,1111,222])
    
  4. 可以将buffer与字符串进行转换

    let buffer = buffer.from([1,2,3,4,1111,222])
    // 使用toString方法-按照 utf8 编码将 Buffer 中的二进制数据转换为字符串
    console.log(buffer.toString())
    
使用buffer
let buffer = Buffer.from("helloworld")
// 使用下标读取
console.log(buffer[0])

// 此处的toString(2)是进行进制转换,转换成二进制
console.log(buffer[0].toString(2))
修改buffer
// 使用下标修改
buffer[0] = 100

// 查看修改的结果
console.log(buffer.toString())
  • 如果修改的数值超过 255 ,则超过 8 位数据会被舍弃
  • 一个 utf-8 的字符 一般 占 3 个字节
posted @ 2024-12-12 18:59  木子七  阅读(58)  评论(0)    收藏  举报