/**
* 缓存InputStream,以便InputStream的重复利用
*/
public class InputStreamCacher {
/**
* 将InputStream中的字节保存到ByteArrayOutputStream中。
*/
private ByteArrayOutputStream byteArrayOutputStream = null;
/**
* InputStream的重复利用
*
* @param inputStream
* @return
*/
public InputStreamCacher(InputStream inputStream) {
if (inputStream == null) {
return;
}
byteArrayOutputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
try {
while ((len = inputStream.read(buffer)) > -1) {
byteArrayOutputStream.write(buffer, 0, len);
}
byteArrayOutputStream.flush();
} catch (IOException e) {
throw new RuntimeException("缓存InputStream异常:", e);
}
}
/**
* 获取缓存的流
*
* @return
*/
public InputStream getInputStream() {
if (byteArrayOutputStream == null) {
return null;
}
return new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
}
}
InputStream重复利用
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 前端总会遇到重复点击的问题,由于网络的原因,用户不能及时得到反馈,就很可能会选择再点击一次, 所以这个时候就会向后...
- 记日记就象以前的“航海日记”一样,有助于我们更好的体悟我们独特的个体生活;人生是个短暂的生命旅程。 这里的日记还有...
- 你啊,就别说你还好了。 昨晚我发给你的歌听了吧?歌里唱:「我才懒得给你解药,反正你爱来这一套,为爱情折腰,难道不是...