File 和 Blob

JavaScript 在处理文件、二进制数据和数据转换时,提供了一系列的 API 和对象,比如 File、BlobFileReader、ArrayBuffer、Base64、Object URL 和 DataURL。每个概念在不同场景中都有重要作用。

Blob

在 JavaScript 中,Blob(Binary Large Object)对象用于表示不可变的、原始的二进制数据。它可以用来存储文件、图片、音频、视频、甚至是纯文本等各种类型的数据。Blob 提供了一种高效的方式来操作数据文件,而不需要将数据全部加载到内存中,这在处理大型文件或二进制数据时非常有用。

创建Blob对象

可以使用 new Blob() 构造函数来创建一个 Blob 对象:

const blob = new Blob(blobParts, options);
  • blobParts: 一个数组,包含将被放入 Blob 对象中的数据,可以是字符串、数组缓冲区(ArrayBuffer)、TypedArray、Blob 对象等。
  • options: 一个可选的对象,可以设置 type(MIME 类型)和 endings(用于表示换行符)。

Blob 对象主要属性

size

size返回 Blob 对象的大小(以字节为单位)

console.log(blob.size); // 输出 Blob 的大小

type

type返回 Blob 对象的 MIME 类型。

console.log(blob.type); // 输出 Blob 的 MIME 类型

Blob 对象常用方法

slice()

slice([start], [end], [contentType])

该方法用于从 Blob 中提取一部分数据,并返回一个新的 Blob 对象。参数 start 和 end 表示提取的字节范围,contentType 设置提取部分的 MIME 类型。

const blob = new Blob(["Hello, world!"], {
    type: "text/plain" });

const partialBlob = blob.slice(0, 5);

text()

该方法将 Blob 的内容读取为文本字符串。它返回一个 Promise,解析为文本数据。

blob.text().then((text) => {
   
  console.log(text); // 输出 "Hello, world!"
});

arrayBuffer()

该方法将 Blob 的内容读取为 ArrayBuffer 对象,适合处理二进制数据。它返回一个 Promise,解析为 ArrayBuffer 数据。

const blob = new Blob(["Hello, world!"], {
    type: "text/plain" });

blob.arrayBuffer().then((buffer) => {
   
  console
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值