JavaScript文件操作_Blob与StreamAPI应用

Blob和Stream API提升Web文件处理能力,支持客户端高效操作大文件。1. Blob封装二进制数据,可创建、切片、生成URL预览或下载;2. FileReader读取Blob内容实现本地预览;3. ReadableStream流式加载避免内存溢出,适合大文件边下载边处理;4. TransformStream实时转换流数据,构建压缩、加密等处理链。结合使用优化大文件上传与弱网体验,需注意释放URL和兼容性降级。

javascript文件操作_blob与streamapi应用

在现代Web开发中,JavaScript处理文件的方式已经从简单的上传下载演进到可以在客户端进行复杂操作。特别是Blob与Stream API的引入,让浏览器端具备了更强大的文件读取、切片、转换和传输能力。掌握这些技术,能显著提升文件处理性能,尤其是在大文件上传、视频剪辑预览、离线编辑等场景下非常实用。

Blob:二进制大对象的基本操作

Blob(Binary Large Object)表示不可变的原始二进制数据。它常用于表示音频、视频、图像或任意文件内容。

创建一个Blob很简单:

const data = 'Hello, I am a text file';const blob = new Blob([data], { type: 'text/plain' });

你可以通过URL.createObjectURL()生成一个临时URL来预览或下载Blob:

立即学习“Java免费学习笔记(深入)”;

const url = URL.createObjectURL(blob);const a = document.createElement('a');a.href = url;a.download = 'hello.txt';a.click();URL.revokeObjectURL(url); // 释放内存

Blob还支持切片操作,这对大文件分块上传特别有用:

const chunk = blob.slice(0, 1024, 'text/plain'); // 取前1KB

FileReader与Blob结合实现本地读取

虽然Blob本身不能直接读取内容,但可以通过FileReader将其转为文本、DataURL或ArrayBuffer:

const reader = new FileReader();reader.onload = function(e) {  console.log(e.target.result); // 读取结果};reader.readAsText(blob); // 或 readAsDataURL, readAsArrayBuffer

这在用户选择文件后立即预览内容时非常常见,比如图片上传前的缩略图展示。

腾讯混元文生视频 腾讯混元文生视频

腾讯发布的AI视频生成大模型技术

腾讯混元文生视频 266 查看详情 腾讯混元文生视频

ReadableStream:流式处理大数据

当文件过大时,一次性加载到内存会造成卡顿甚至崩溃。ReadableStream允许我们以“流”的方式逐块处理数据,节省内存并提高响应速度。

现代浏览器中,fetch返回的response.body就是一个ReadableStream:

const response = await fetch('/large-file.bin');const reader = response.body.getReader();let receivedLength = 0;let chunks = [];while(true) {  const { done, value } = await reader.read();  if (done) break;  chunks.push(value);  receivedLength += value.length;  console.log(`已接收 ${receivedLength} 字节`);}// 合并所有chunkconst allBytes = new Uint8Array(receivedLength);let position = 0;for(const chunk of chunks) {  allBytes.set(chunk, position);  position += chunk.length;}const resultBlob = new Blob([allBytes]);

这种方式适合处理视频、大日志文件或需要边下载边解析的场景。

TransformStream:在流中转换数据

TransformStream是Streams API的一部分,可以插入在可读流和可写流之间,对流动的数据进行实时处理,比如压缩、加密或编码转换。

示例:创建一个将文本转为大写的转换流:

const encoder = new TextEncoder();const decoder = new TextDecoder();const transformStream = new TransformStream({  transform(chunk, controller) {    const upperChunk = chunk.toUpperCase();    controller.enqueue(encoder.encode(upperChunk));  }});// 使用流处理文本const inputStream = new ReadableStream({  start(controller) {    controller.enqueue('hello');    controller.enqueue('world');    controller.close();  }});const readable = inputStream  .pipeThrough(transformStream)  .pipeThrough(new TextDecoderStream());// 消费结果const reader = readable.getReader();while (true) {  const { done, value } = await reader.read();  if (done) break;  console.log(value); // 输出:HELLO WORLD}

这种模式非常适合构建高效的文件处理流水线,例如边上传边压缩。

基本上就这些。Blob提供了基本的二进制数据封装能力,而Stream API则让大规模数据处理变得高效流畅。两者结合,使JavaScript在文件操作方面越来越接近原生应用体验。实际项目中,合理使用这些API能极大优化用户体验,尤其是面对大文件或弱网络环境时。不复杂但容易忽略的是资源释放和兼容性处理,记得及时revokeObjectURL并考虑降级方案。

以上就是JavaScript文件操作_Blob与StreamAPI应用的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/866224.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月28日 02:26:28
下一篇 2025年11月28日 02:32:00

相关推荐

  • ustd用什么软件交易 ustd交易软件APP前十名汇总

    USTD,全称为Tether USD,是一种与美元挂钩的稳定币。它的主要目的是在加密货币市场中提供一种价格稳定的交易媒介。由于其与美元1:1的挂钩,USTD被广泛用于交易、支付和作为一种价值储存手段。在进行USTD交易时,选择合适的交易软件至关重要。以下是关于USTD交易软件的详细介绍和前十名汇总。…

    2025年12月7日 好文分享
    000
  • XDC Network的XVC Tech宣布对激光数字携带基金投资,以LIBRE启动机构基础设施

    xdc网络旨在通过其战略投资和新成立的基础设施来增强机构信心并推动广泛采用。 XDC Network的风险投资部门XVC Tech宣布了由Nomura Holdings的数字资产子公司Laser Digital管理的激光数字携带基金(LCF)的投资。 作为这项合作的一部分,LIBRE是一个受管制投资…

    2025年12月7日
    000
  • 比特币(BTC)价格预测:符文,wif,fartcoin

    spx6900成为当今加密货币市场中表现最好的资产。主要的模因硬币经历了25.78%的巨大价格增长 如今,加密货币市场经历了显着的潮流,多个资产记录了更多的跳跃。这些价格上涨是由比特币的新AHT驱动的11万美元,并在最近的美国 – 中国贸易协定降低了全球关税紧张局势后,并重新激发了热情。…

    2025年12月7日
    000
  • Ruvi AI在分散的革命中以改变游戏规则的方式出现

    随着tron network最近的流通量超过了10亿美元,链上活动和开发人员参与已达到新的高度。 TRON(TRX)的交易稳定为0.278美元,因为它因其分散申请(DAPP)和Stablecoin交易而被认可。 随着tron network最近的流通量超过了10亿美元,链上活动和开发人员参与已达到新…

    2025年12月7日
    000
  • 随着比特币(BTC)的价格突破了110,000美元的历史标记

    这种趋势不仅代表了管理资产管理方式的变化,而且还表明云采矿已成为最受欢迎的利润策略之一 由于比特币(BTC)的价格违反了110,000美元的历史标记,因此加密市场的关注水平是前所未有的。大量BTC持有人不再对“等待升值”感到满意,而是选择将加密货币转换为稳定的每日收入来源,这是通过ripplecoi…

    2025年12月7日
    000
  • BlockDag领导下一个大加密硬币竞赛,因为其预售率达到2.615亿美元,XRP,Polkadot&Cardano Close落后

    加密货币市场将于今年5月看到新的能源,出于所有正确的原因,一些项目成为头条新闻。 梅为加密货币市场带来了新的能量,一些项目正在收获收益。从即将到来的交易所推出到期货交易和关键阻力中断,现在正在讨论几枚硬币的最新更新和执行。 该综述包括一个顶级的预售竞争者和三个既定名称,每个名字都强调了为什么它们可能…

    2025年12月7日
    000
  • binance官网网址是什么 binance交易平台官网地址

    inance作为全球领先的加密货币交易平台,以其安全、高效、丰富的交易产品和创新的金融服务赢得了广泛的用户群体。无论是新手还是专业交易者,Binance都能提供满足需求的服务。访问www.binance.com,注册账号并开始您的加密货币交易之旅吧! Binance官网网址是什么?Binance交易…

    2025年12月7日
    000
  • 安币Binance官网入口 Binance 官网登录入口

    Binance作为全球领先的加密货币交易平台,不仅为用户提供了安全、便捷的交易环境,还提供了丰富的金融服务和学习资源。无论你是想要进行简单的买卖交易,还是希望通过质押和借贷来增值你的资产,Binance都能满足你的需求。通过www.binance.com这个入口,你可以轻松地进入这个充满机遇的世界,…

    2025年12月7日
    000
  • 在哪里找到Binance官网入口?如何安全访问Binance交易所?最新Binance官方网址分享

    Binance是全球领先的加密货币交易平台,提供丰富的数字资产交易服务。1.直接输入官方网址访问;2.通过搜索引擎查找官网;3.关注官方社交媒体获取链接;4.下载官方App进行访问。此外,启用双重认证、设置强密码、保持软件更新、警惕钓鱼邮件等措施可确保账户安全。Binance还提供多种交易对、低手续…

    2025年12月7日
    000
  • 区块链交易软件币 安Binance免费下载教程

    通过以下步骤,你就可以成功下载并安装币安官方App,开始享受币安提供的各种区块链交易服务。请记住,使用本文提供的官方App下载链接,可以确保你下载的是安全可靠的币安App。如果你在下载或安装过程中遇到任何问题,欢迎随时联系币安的客服团队,他们会为你提供专业的帮助。 币安(Binance)()作为全球…

    2025年12月7日
    000
  • 区块链虚拟币APP排名 区块链全球虚拟币交易APP前十名发布榜单

    随着区块链技术的迅猛发展,全球虚拟币交易市场也随之变得更加繁荣。为了帮助投资者和用户更好地了解市场动态,我们在此发布全球虚拟币交易APP前十名榜单。这份榜单不仅展示了当前市场上最受欢迎的交易应用,同时也为用户提供了选择交易平台的参考依据。 第一名:Binance(币安) Binance 是全球最大的…

    2025年12月7日 好文分享
    000
  • 2025binance官网入口在哪?Binance官方下载入口介绍

    币安Binance%ignore_a_1%: 币安app官方下载: Binance,作为全球领先的加密货币交易平台,凭借其强大的技术支持和广泛的用户基础,赢得了众多投资者的青睐。无论是新手还是专业交易者,都可以通过Binance平台进行各种加密货币的交易、存储和管理。随着加密货币市场的不断发展和变化…

    2025年12月7日
    000
  • HTX火必交易所怎么注册_如何注册HTX火必交易所

    HTX火必交易所是全球知名的加密货币交易平台之一,提供多种数字资产的交易服务。如果你想加入这个平台进行交易,以下是一步步的详细注册指南。 访问HTX火必官网 首先,你需要访问HTX火必的官方网站。你可以通过在浏览器中输入官网来进入其主页。确保你访问的是官方网站,以避免被钓鱼网站欺骗。 点击注册按钮 …

    2025年12月7日
    000
  • 如何进入Binance官网?最新Binance官方下载链接分享

    要进入Binance官网并下载官方应用,请按照以下步骤操作:1. 在浏览器中输入指定网址访问Binance官网;2. 通过提供的官方链接下载适用于Android或iOS的Binance应用;3. 安装应用时根据提示允许未知来源并等待完成;4. 注册账户并登录,填写信息并通过验证;5. 使用平台提供的…

    2025年12月7日
    000
  • 币安交易软件下载 币安软件下载渠道有哪些

    币安作为全球领先的加密货币交易平台,提供了多种便捷的软件下载渠道,以满足不同用户的需求。本文将详细介绍币安交易软件的下载方法以及各种下载渠道,帮助用户快速找到适合自己的下载方式。 币安官方网站下载 访问币安官方网站是获取币安交易软件最安全和最直接的方法。用户可以通过以下步骤在币安官方网站上下载软件:…

    2025年12月7日
    000
  • Dogecoin(Doge)和Solana(Sol)价格下跌为Unilabs(UNIL)创造了机会

    最近,随着加密货币市场的波动增长,dogecoin的价格和索拉纳(solana)的价格有些下降。 最近,Solana(Sol)的价格看到了一些下降,因为加密货币市场的波动性增长。尽管像教授这样的市场专家对这个顶级山寨币仍然乐观,但交易员正在研究其他具有更高稳定性的项目。一个这样的项目可能是Unila…

    2025年12月7日
    000
  • Sonic Labs选择GSR作为其本地令牌的官方做市商合作伙伴

    sonic labs已选择加密资本市场gsr作为sonic blockchain本地代币的官方做市商合作伙伴。 Sonic Labs是Sonic区块链背后的开发工作室,已宣布与加密资本市场GSR建立合作伙伴关系,是该区块链本地代币S.的官方做市商合作伙伴。 Sonic Labs团队在周三的公告中说,…

    2025年12月7日
    000
  • 不可能的云网络(ICN)从投资氦气的风险投资公司NGP Capital筹集了4.7亿美元

    web3领先的分散云网络不可能的云网络(icn)正在ngp capital宣布一项新投资 据报道,建立一个分散的云网络的公司Impossime Cloud Network(ICN)已从NGP Capital获得了一项投资,NGP Capital是一家以早期支持氦气而闻名的风险投资公司。根据周三(8月…

    2025年12月7日
    000
  • 用流体启动索拉纳的贷款协议

    在solana加速活动中,木星透露了大胆的扩张。该平台现在以主导solana的dex聚合空间而闻名,现在进入加密贷款。 Solana上的主要DEX聚合器Jupiter正在使用其自己的协议扩展到贷款空间。 该协议是用流体制造的,该协议是一种始于以太坊的Defi Innovator,现在将其技术带到So…

    2025年12月7日
    000
  • 安币交易所网页版注册入口_安币交易所网页版注册入口链接

    全球领先的数字货币交易平台,致力于为用户提供安全、高效、便捷的数字资产交易服务。作为一家国际化的交易所,安币交易所支持多种主流数字货币的交易,包括比特币(BTC)、以太坊(ETH)、莱特币(LTC)等。此外,安币交易所还提供多种创新功能,如杠杆交易、合约交易、以及 staking 服务,帮助用户在数…

    2025年12月7日
    000

发表回复

登录后才能评论
关注微信