在node.js中读取二进制数据
在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字节。为什么会这样?我已经在readFileSync
和toString
中都设置了二进制编码。
我还尝试了ASCII编码,但是结果不同且同样不正确。