简谈 ByteArrayOutputStream 和 BufferOutputStream

本文探讨在Android微信分享图片时遇到的问题,由于SDK接口变更,需将URL转换为Bitmap。通过Java IO流,特别是ByteArrayOutputStream和BufferOutputStream实现此功能。BufferOutputStream作为缓冲流减少频繁IO操作,提高性能,而ByteArrayOutputStream用于快速扩容和获取byte数组。DMA在IO中的作用也进行了简要说明。
摘要由CSDN通过智能技术生成

最近在做微信分享时,发现android端sdk内置的url传递图片分享形式失效了【对应的api已经从sdk中移除了】

对于上面提到的图片分享的解决方案有两种: 一种是外界统一传bitmap到sdk内分享,一种是sdk内部解析外界传入的url然后

再传。【这里为了方便以后扩展提供了内置url转bitmap的方式】

对应url转bitmap这里采用了 java原生的输入输出流方式处理,URL-InputStream-ByteArrayOutputStream-BufferOutputStream

【代码后期补上】

这里只提:BufferOutputStream和ByteArrayOutputStream 

new ByteArrayOutputStream() 后 扔到BufferOutputStream的构造中,先通过BufferOutputStream 缓冲buffer数组缓冲(待会再谈buffer在java io流中的意义)

在InputStream和OutputStream流中调用write写数据时,不管io流采用装饰者还是适配者等设计模式,怎样去使用最终都会转换成一个一个的数据流形式进行数据读写

而对于包装了ByteArrayOutputStream的BufferOutputStream,起到的作用和ByteArrayOutputStream不同,对应的使用场景是缓冲数据,并最终对接输出流,减少频繁io带来的性能损耗。而ByteArrayOut

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值