我試圖從流頂部開始多次讀取java.io.InputStream
。我可以關閉/重新打開InputStream以模擬不支持標記的輸入流的標記/重置嗎?
顯然,對於流返回true
到markSupported()
我可以嘗試使用mark(availableBytes)
,然後reset()
從頂部再次讀取流。
大部分流的不支持標記和那些(例如java.io.BufferedInputStream
)將數據複製到臨時字節排列構成的非內存消耗的術語漂亮等
如果我的方法接收java.io.InputStream
作爲參數我可以關閉它,然後重新打開它重置相同的原始流到頂部,所以我可以再次閱讀它?
我找不到任何方式從原來寫入到InputStream
內存除了做這一招(犛牛!)或臨時文件,並比打開新InputStream
那些臨時地點,如果我需要再次讀取從頂部流。
你說得對,這對於'InputStream'來說不是微不足道的。然而,我意識到我實際上正在處理具有可用於標記/重置的API的ImageInputStream。 – parxier 2011-04-13 23:05:49