Buffer让js处理二进制

创建buffer

  1. // 创建buffer
  2. // 内存中锁定10个字节作为buffer空间
  3. const b1 = Buffer.alloc(10)
  4. // Buffer.from 可以接收一个字符串创建buffer
  5. const b2 = Buffer.from('abc')
  6. // Buffer.from 可以接收一个数组创建buffer
  7. const b3 = Buffer.from(['ac','dd'])
  8. // Buffer.from的第二个参数是编码方式
  9. const b4 = Buffer.from('abc','utf8')
  10. // Buffer.from 可以接收一个buffer创建buffer
  11. const b5 = Buffer.from(b1)

buffer实例方法

  1. const buf1 = Buffer.alloc(10)
  2. // fill 填满buffer 填满为止, 如果内容不够就重复填充, 如果内容过多就截取部分填充
  3. buf1.fill('123123465789')
  4. console.log(buf1)
  5. console.log(buf1.toString())
  6. // write 写入
  7. /**
  8. * content 内容
  9. * start 开始索引
  10. * end 结束位置
  11. */
  12. const buf2 = Buffer.alloc(10)
  13. buf2.write('123',2,5)
  14. console.log(buf2.toString())
  15. // slice
  16. /**
  17. * start 开始
  18. * end 结束
  19. */
  20. const buf3 = Buffer.from('123456789')
  21. const buf4 = buf3.slice()
  22. console.log(buf4.toString())
  23. const buf5 = buf3.slice(2,5)
  24. console.log(buf5.toString())
  25. // indexOf
  26. /**
  27. * target 目标
  28. * start 开始位置
  29. */
  30. const buf6 = Buffer.from('12345623456')
  31. console.log(buf6.indexOf('2'))
  32. console.log(buf6.indexOf('2',4))
  33. // copy 用法 source.copy(target,start,len,end)
  34. const buf7 = Buffer.alloc(6)
  35. const buf8 = Buffer.from('杨洋')
  36. buf8.copy(buf7,3,3,6)
  37. console.log(buf7.toString())

Buffer静态方法

  1. // Buffer.concat
  2. // 接受一个元素为buffer实例的数组 返回一个新的buffer
  3. const b1 = Buffer.from('are')
  4. const b2 = Buffer.from('you')
  5. const b3 = Buffer.from('ok')
  6. let b = Buffer.concat([b1,b2,b3])
  7. console.log(b.toString())
  8. // Buffer.isBuffer
  9. const b4 = Buffer.alloc(4)
  10. console.log(Buffer.isBuffer(b4))