我可以关闭/重新打开InputStream来模拟不支持标记的输入流的标记/重置吗?
|
我正尝试从流的顶部开始多次读取“ 0”。
显然对于返回
true
到markSupported()
的流,我可以尝试使用mark(availableBytes)
,然后是reset()
从顶部再次读取流。
大多数流不支持mark,而那些流(例如ѭ5)将数据复制到临时字节数组中,这在内存消耗方面并不理想。
如果我的方法将“ 0”作为参数接收,我可以将其关闭然后以某种方式重新打开以将相同的原始流重置为顶部,以便我可以再次读取它吗?
除了将原始的ѭ7写入内存(ak牛!)或临时文件之外,如果我需要再次从顶部读取流,我除了找到新的InputStream
到那些临时位置之外,没有其他方法可以做到这一点。
没有找到相关结果
已邀请:
1 个回复
担每棱绰
(简单),该流被初始化为指向什么(根据流类型及其接口的不同,可能是容易,困难或不可能的),然后添加代码以使用原始源输入实例化具体流类型的新实例(这并不困难,但也不太易于维护和容易如果有人创建了一个您不知道如何处理的自定义“ 7”实现,则该功能将不可用)。