File、Blob、FileReader、ArrayBuffer、Base64

本文介绍了JavaScript中的Blob对象和ArrayBuffer。Blob用于存储大量二进制数据,不可修改,可通过FileReader读取。创建Blob时可指定MIME类型,如文本、图片或音频。ArrayBuffer是一个黑盒,需通过视图对象如Int8Array读写数据。DataView提供更灵活的数据访问,支持不同数据类型的读写。示例展示了如何创建和操作Blob及ArrayBuffer。
摘要由CSDN通过智能技术生成

一、Blob

Blob全称为binary large object ,即二进制大对象。blob对象本质上是js中的一个对象,里面可以储存大量的二进制编码格式的数据。Blob对象的特点:

  • 不可修改
  • 从Blob中读取内容的唯一方法是使用FileReader

1、创建

new Blob(array,options)

array:由ArrayBuffer、ArrayBufferView、Blob、DOMString等对象构成的,将会被放进Blob;

options:

  • type:默认值为“”,表示将会被放入Blob中的数组内容的MIME类型。
  • endings:默认值为“transparent",用于指定包含行结束符\n的字符串如何被写入,不常用
MIME类型描述
text/plain纯文本文档
text/htmlHTML文档
text/javascriptJavaScript文档
text/cssCSS文件
application/jsonJSON文件
application/pdfPDF文件
application/xmlXML文件
image/jpegJPEG图像
image/pngPNG图像
image/gifGIF图像
image/svg+xmlSVG图像
audio/mpegMP3文件
video/mpegMP4文件

2、Demo演示

let blob = new Blob(['helloworld'],{type:"text/plain"});
console.log(blob);

Blob的属性

  • size:Blob对象中所包含数据的大小(字节 );
  • type:字符串,认为该Blob对象所包含的MIME类型,如果类型未知,则为空字符串。

3、Blob的分片

Blob对象内置了slice()方法用来将blob对象分片

其有三个参数

  • start:设置切片的起点,默认为0,意味着从第一个字节开始;
  • end:切片的结束点,默认值blob.size;
  • contentType:设置blob的MIME类型。如果省略,则默认为blob的原始值。

Demo实例:

let blob1 = blob.slice(0,2,"text/plain");
console.log(blob1);

 二、ArrayBuffer

ArrayBuffer是一个特殊的数组。本身就是一个黑盒,不能直接读写所存储的数据,需要借助以下视图对象来读写。视图对象包含:

Int8Array、Uint8Array、Int16Array、Uint16Array、Int32Array、Uint32Array、Float32Array、Float64Array、Uint8ClampedArray。

TypeArray视图和DataView视图的区别主要是字节序,前者的数组成员都是同一个数据类型,后者的数组成员可以是不同的数据类型。

1、创建buffer

let buffer = new ArrayBuffer(32);
console.log(buffer);
let u8 = new Uint8Array(buffer);
console.log(u8);
u8[0]=100;
console.log(u8);

运行结果:

 2、DataView

let buffer = new ArrayBuffer(32);
console.log(buffer);
let d8 = new DataView(buffer);
console.log(d8);
console.log(d8.getInt8(1));
//设置
d8.setInt8(1,100);
console.log(d8.getInt8(1));

运行结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值