复制InputStream,如果大小超出限制,则中止 *** 作

复制InputStream,如果大小超出限制,则中止 *** 作,第1张

复制InputStream,如果大小超出限制,则中止 *** 作

第一个问题:是否有更好的解决方案?

并不是的。当然,不会明显更好。

第二个问题:我的另一个解决方案-
在复制 *** 作之前,我先计算InputStream的大小。所以我将InputStream复制到ByteArrayOutputStream然后获取size()。但是问题是InputStream可能没有markSupported(),因此InputStream无法在复制文件 *** 作中重用。

撇开上面的说法不是问题…

如果您已将字节复制

ByteArrayOutputStream
,则可以
ByteArrayInputStream
从返回的字节数组中创建一个
baos.toByteArray()
。因此,您无需标记/重置原始流。

但是,这是实现此方法的非常难看的方法。尤其重要,因为无论如何您都在读取和缓冲 整个 输入流。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5429572.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存