如何将十六进制缓冲区转换为十六进制数组?

时间:2018-01-28 21:20:39

标签: javascript arrays node.js buffer

var file = randomAccessFile('gen.mp3')

    file.read(0, 5, function(err, buffer) {
      console.log(buffer) 

    for (const value of buffer.values()) {
      console.log(value);
    }

    file.close(function() {
    console.log('file is closed')

       })
    })

第一个输出是:

<Buffer 49 44 33 03 00>

和第二个:

73
68
51
3
0

我需要一个数组或其他数据结构,我可以单独访问第一个输出的值。我该怎么办?为什么第二个输出将十六进制转换为十进制?

1 个答案:

答案 0 :(得分:1)

您只需使用[index]访问缓冲区即可。 https://nodejs.org/api/buffer.html#buffer_buf_index

如果您愿意,也可以打印十六进制值。

var file = randomAccessFile('gen.mp3')

file.read(0, 5, function(err, buffer) {
  console.log(buffer) 
  console.log(buffer[0]); // prints decimal
  console.log(buffer[0].toString(16)); //prints hexadecimal
  file.close(function() {
       console.log('file is closed')
  })
})