1.我用nodejs读取.dat十六进制的文件,返回的是一个buffer类,如Buffer <f4 00 7c 00 01 01 01 00 01 00 01 00 01 00 01 00 01 00 01 00 1c 00 16..>,然后按照readUInt16LE来获得这个buffer类的数据,返回的是这样的:
224 124 257...
2.我用前端按照buffer数组reader.readAsArrayBuffer(file),读取该文件,返回的是一个内存长度,然后我用new Uint16Array表示出来,获得数据,是这样的:
[512, 512, 20, 28277, 25956, 26982, 25966, 100, 0, 0, 0, 0,。。];
- 同样是读取一个无符号的16位整数值,为什么返回结果相差很大啊,文件内存肯定是一样的,是不是nodejs读取文件内存时返回的buffer和浏览器中js读取文件返回的数据机制不同啊?
跪求大神指点,谢谢
没问题吧,要不你的系统可能是big-edian序的,用readUInt16BE就好了