第一个问题:是否有更好的解决方案?
并不是的。当然,不会明显更好。
第二个问题:我的另一个解决方案-
在复制 *** 作之前,我先计算InputStream的大小。所以我将InputStream复制到ByteArrayOutputStream然后获取size()。但是问题是InputStream可能没有markSupported(),因此InputStream无法在复制文件 *** 作中重用。
撇开上面的说法不是问题…
如果您已将字节复制到
ByteArrayOutputStream,则可以
ByteArrayInputStream从返回的字节数组中创建一个
baos.toByteArray()。因此,您无需标记/重置原始流。
但是,这是实现此方法的非常难看的方法。尤其重要,因为无论如何您都在读取和缓冲 整个 输入流。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)