微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从纯 JavaScript 中的二进制文件 blob 中读取标头值

如何解决从纯 JavaScript 中的二进制文件 blob 中读取标头值

假设我有一个保存文件bufferArray 对象 buff。 假设文件一个文件头,文件属性大小不同,偏移量不同。

例如:

偏移|长度(字节)|属性

所以,我想阅读那些标题条目。 ArrayBuffer 不能在 JS 中直接访问或修改。我们必须使用 ArrayBufferView

但是条目的大小不同:我们要读取 2、4、8 个字节(可能还有其他大小)的值。随后,我是否需要使用多个 ArrayBufferView 从 1 个文件中读取标题

const buff = new ArrayBuffer();

var byte2 = new Uint16Array(buffer,byteOffset,length);
var byte4 = new Uint32Array(buffer,length);
var byte8 = ? // JS does not support 64 bit Ints. What should I do?

var signature = byte4[0];
var headerSize = byte2[2];
var fiLeversion = byte2[3];

property1 = ? // no 64 bit Int support in JS
property2 = ? // no 64 bit Int support in JS

所以,我的问题是:有多个 ArrayBufferView 是要走的路,还是有更优雅的方法?比如,一次性设置一个 JS 等价于 C 结构。

另外,如何从 JS 的文件头中读取和存储 64 位(8 字节)整数? (对不起,第二个子问题,但对于这个应用案例,它们确实是相互关联的。也许,发布 2 个单独的答案以获得额外的分数。)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。