从Node.js的缓冲区中删除“空”字节

时间:2019-07-31 05:42:26

标签: node.js buffer

我有此代码:

  const start = pos * 100;
  const b = Buffer.alloc(99);
  fs.readSync(logFD, b, 0, b.length, start);
  console.log(String(b)); 
  const j = JSON.parse(String(b).trim());

我收到此错误:

  

SyntaxError:JSON中位置15处出现意外令牌

问题可能是我的缓冲区中有空字节:

7b22 7022 3a37 3236 3736 2c22 6222 3a31
3837 7d00 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000

我不知道要读取多少个字节,因此我必须读取一个阈值以上然后将其修整一下。是否有某种方法可以在转换为字符串之前从缓冲区中删除空字节?< / p>

1 个答案:

答案 0 :(得分:0)

所以我认为这可行:

  const i = b.indexOf(0x00);
  const nb = b.slice(0, i);

我只是在显示十六进制0x00的第一个索引之后删除