首页 > 学院 > 开发设计 > 正文

关于重复使用InputStream对象的

2019-11-09 15:08:16
字体:
来源:转载
供稿:网友

关于重复使用InputStream对象的解决方法

项目中使用Okhttp加载网络图片时,通过response.body().byteStream()获得InputStream流对象, 第一次需要用到该流去获得图片尺寸,而真正取图片显示时又使用了该流,当你去使用BitmapFactory.decodeStream(is, null, ops)获取bitmap时,bitmap总是null。

第一次读取InputStream对象后,第二次再读取时可能已经到Stream的结尾了(EOFException)或者Stream已经close掉了,此时的流的起始位置已经被移动。 而InputStream对象本身不能复制,因为它没有实现Cloneable接口。此时,可以先把InputStream转化成ByteArrayOutputStream,后面要使用InputStream对象时,再从ByteArrayOutputStream转化回来就好了。代码如下: 这里写图片描述


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表