[JavaScript]使用ArrayBuffer和Blob编辑二进制流
Blob()构造方法返回一个新的Blob
对象. 内容是包含参数array的二进制字节流.
语法
var aBlob = new Blob( array, options );
参数
- array is an
Array
ofArrayBuffer
,ArrayBufferView
,Blob
,DOMString
objects, or a mix of any of such objects, that will be put inside theBlob
. DOMStrings are encoded as UTF-8. - options is an optional
BlobPropertyBag
dictionary which may specify the following two attributes:type
, with a default value of""
, that represents the MIME type of the content of the array that will be put in the blob.endings
, with a default value of"transparent"
, that specifies how strings containing the line ending character\n
are to be written out. It is one of the two values:"native"
, meaning that line ending characters are changed to match host OS filesystem convention, or"transparent",
meaning that endings are stored in the blob without change.
var buffer = new ArrayBuffer(2);
var int8View = new Int8Array(buffer);
int8View[0] = 170;
int8View[1] = 254; var blob = new Blob([int8View, event.target.result]);
此段代码创建了一个2字节的二进制数10101010和11111110,并且把它追加到了event.target.result字节流的头部
var buffer = new ArrayBuffer(8);
var uInt32 = new Uint32Array(buffer);
uInt32[0] = 2356021; console.log(uInt32[0]); //
console.log(uInt32.length); //
console.log(uInt32.BYTES_PER_ELEMENT); // var view = new DataView(buffer,0,8);
console.log(view.getUint32(0,4));//
此段代码创建了2个无符号32位整数buff(一个unsigned int需要4个字节空间,所以new ArrayBuffer(8)分配了8个字节,即,可容纳8/4=2个unsigned int类型的整数);
在第1个数组放置2356021,当然你可以使用uInt32[1]放置第二个值,但是你只能放置2个值,毕竟它只分配了8/4=2个unsigned int类型的整数;
调用length可查看ArrayBuffer的长度,这里是2,调用BYTES_PER_ELEMENT可查看每个元素占用的字节数,这里是4;
运用DataView可以以一种方式去读取某段buff的值;
查看更多的例子:
[JavaScript]使用ArrayBuffer和Blob编辑二进制流的更多相关文章
- JavaScript读二进制文件并用ajax传输二进制流
综合网上多个教程,加上自己实践得出的方法,目前能够兼容谷歌.IE11.IE10. htmlbody里的内容,没什么特殊的. <div id="dConfirm"> &l ...
- 前端Blob对二进制流数据的处理方式
var xhr = new XMLHttpRequest(); xhr.open("post", "/login/getCaptcher?t=" + Math. ...
- 接收二进制流(ArrayBuffer) ,并且显示二进制流图片
1.调用接口,返回二进制流数据 var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { && xhr ...
- CEF 自定义用户协议(scheme)实现以二进制流的方式显示图片、视频、音频
转载:https://www.cnblogs.com/sinceret/p/10417941.html 转载:https://stackoverflow.com/questions/48811756/ ...
- 第六章 MVC之 FileResult和JS请求二进制流文件
一.FileResult 1.简介 表示一个用于将二进制文件内容发送到响应的基类.它有三个子类: FileContentResultFilePathResultFileStreamResult 推荐阅 ...
- 【前端知乎系列】ArrayBuffer 和 Blob 对象
本文首发在 个人博客 更多丰富的前端学习资料,可以查看我的 Github: <Leo-JavaScript>,内容涵盖数据结构与算法.HTTP.Hybrid.面试题.React.Angul ...
- axios+post获取并下载后台返回的二进制流
axios+post获取并下载后台返回的二进制流 let url = $.getCookie('prefixUrl')+'/expenseword/exportWords'; let vm = thi ...
- [.net 面向对象程序设计进阶] (9) 序列化(Serialization) (一) 二进制流序列化
[.net 面向对象程序设计进阶] (9) 序列化(Serialization) (一) 二进制流序列化 本节导读: 在.NET编程中,经常面向对象处理完以后要转换成另一种格式传输或存储,这种将对 ...
- ajax 请求二进制流 图片 文件 XMLHttpRequest 请求并处理二进制流数据 之最佳实践
写在前面 :从提出需求到完美的解决问题,实现过程是曲折的. 需求:在前(web client)后(Restful Service)端完全解耦的模式框架下,webclient需要请求 Service 返 ...
随机推荐
- WeUI0.6.0有一个Calendar在浏览器下无法直接打开问题
主要原因是判断浏览器不支持导致.修改isPopover相关部分代码即可.
- 【noip 2011】提高组Day1T3.Mayan游戏
Description Mayan puzzle是最近流行起来的一个游戏.游戏界面是一个7行5列的棋盘,上面堆放着一些方块,方块不能悬空堆放,即方块必须放在最下面一行,或者放在其他方块之上.游戏通关是 ...
- 数据库设计理论与实践·<一>总结
一.数据库生命周期 数据库生命周期流程图如下: 二.各阶段附图 附图1.1 数据流图 附图1.2 数据字典-方式1 补充说明:数据字典既可以单张表格表示,也可以多种(数据项表/数据结构表/数据流表/外 ...
- 第21月第4天 leetcode codinginterview c++
1.leetcode Implement strStr(). Returns the index of the first occurrence of needle in haystack, or - ...
- 【Vue】定义组件 data 必须是一个函数返回的对象
Vue 实例的数据对象.Vue 将会递归将 data 的属性转换为 getter/setter,从而让 data 的属性能够响应数据变化.对象必须是纯粹的对象 (含有零个或多个的 key/value ...
- 剑指Offer-滑动窗口的最大值
题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值.例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6 ...
- org.springframework.beans.factory.CannotLoadBeanClassException-估计mapper出参 和 po字段不对应了
DEBUG [localhost-startStop-1] - Ignoring bean class loading failure for bean 'itemsService'org.sprin ...
- telnet能通但是ping不通
以前本人以为Telnet通 ping一定也是通的, telnet能通,表示两台计算机之间建立了连接通道.理论上是能ping通的.如果不能ping通,可能的原因是对方主机关闭了ping回显,或者是对方的 ...
- 关于cmd命令
F: 直接进入F盘 cd\ 进入当前盘的根目录 md 文件名 创建文件名 cd 文件名 进入文件名 rd 文件名 删除文件夹
- Thymeleaf在前台下拉列表获取后台传的值
Thymeleaf在前台下拉列表获取后台传的值 后台添加代码: /** * 新增机构 */ @GetMapping("/add") public String add(ModelM ...