在node.js中读取二进制数据

13 浏览
0 Comments

在node.js中读取二进制数据

我正在编写一个在Node.js运行时环境中执行的JavaScript程序。

我想将二进制数据从文件读入缓冲区,但是我一直遇到问题。

以下是我目前所做的:

    $ cat test.js 
    > var fs = require('fs'),
    > binary = fs.readFileSync('./binary', 'binary').toString('binary');
    > process.stdout.write(binary.substring(0, 48));

    $ xxd binary
    00000000: 7f45 4c46 0201 0100 0000 0000 0000 0000  .ELF............
    00000010: 0300 3e00 0100 0000 0008 0000 0000 0000  ..>.............
    00000020: 4000 0000 0000 0000 10a0 0000 0000 0000  @...............

    $ node test.js | xxd
    00000000: 7f45 4c46 0201 0100 0000 0000 0000 0000  .ELF............
    00000010: 0300 3e00 0100 0000 0008 0000 0000 0000  ..>.............
    00000020: 4000 0000 0000 0000 10c2 a000 0000 0000  @...............
    00000030: 00                                       .

请注意,当使用Node读取时,在索引0x29处插入了一个0xc2字节。为什么会这样?我已经在readFileSynctoString中都设置了二进制编码。

我还尝试了ASCII编码,但是结果不同且同样不正确。

0