首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将OutputStream转换为Okio源

将OutputStream转换为Okio源
EN

Stack Overflow用户
提问于 2019-01-23 17:18:59
回答 1查看 842关注 0票数 1

我试图找到一种优雅的方法,在维护数据缓冲区的同时,将bitmap.compress(Bitmap.CompressFormat.PNG, 100, outStream)方法生成的bitmap.compress(Bitmap.CompressFormat.PNG, 100, outStream)转换为Okio的Source / InputStream (需要进一步操作数据编码)。

我试着用

代码语言:javascript
复制
val pipe = Pipe(100)
bitmap.compress(Bitmap.CompressFormat.PNG, 100, Okio.buffer(pipe.sink()).outputStream())
        saveFile(File("filename"), pipe.source())

但这取决于bitmap.compress

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-23 17:30:24

使用缓冲区而不是http://square.github.io/okio/1.x/okio/okio/Buffer.html

代码语言:javascript
复制
val buffer = Buffer()
bitmap.compress(Bitmap.CompressFormat.PNG, 100, buffer.outputStream())
saveFile(File("filename"), buffer)

管道将假定并发编写器以避免潜在的阻塞。

http://square.github.io/okio/1.x/okio/okio/Pipe.html

附加的源和水槽。水槽的输出是源的输入。通常,每个线程都由自己的线程访问:生产者线程将数据写入接收器,使用者线程从源读取数据。该类使用缓冲区来分离源和接收器。此缓冲区具有用户指定的最大大小.当一个生产者线程超过了它的使用者时,缓冲区就会填满,并最终写入接收器,直到使用者捕获为止。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54332474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档