我试图java.io.InputStream从流的顶部开始多次阅读。
显然,对于返回的流,true我markSupported()可以尝试使用mark(availableBytes),然后reset()从顶部再次读取流。
大多数流不支持标记,而那些支持(例如java.io.BufferedInputStream)将数据复制到临时字节数组中,这在内存消耗等方面并不好。
如果我的方法java.io.InputStream作为参数接收,我可以关闭它然后以某种方式重新打开它以将相同的原始流重置到顶部,以便我可以再次读取它?
InputStream除了将原始文件写入内存(牦牛!)或临时文件之外InputStream,如果我需要再次从顶部读取流,我找不到任何方法来执行此技巧。