6
A
回答
16
InputStream是抽象的,不會公開內部數據對象(它們的子對象)。因此,「深度複製」InputStream的唯一方法是創建ByteArrayOutputStream,並在對InputStream執行read()之後,將此數據寫入(ByteArrayOutputStream)。然後做:
newStream = new ByteArrayInputStream(byteArrayOutputStream.toArray());
如果你在你的InputStream使用mark()
那麼你的確無法逆轉這種趨勢。這使您的流「消耗」。
爲了「重用」您的InputStream避免使用mark(),然後在讀取結束時調用reset()。您將從流的開頭讀取。
編輯:
BTW,IOUtils使用這個簡單的代碼片段複製的InputStream:你爲什麼要那麼做http://kickjava.com/src/org/apache/commons/io/CopyUtils.java.htm#ixzz13ymaCX9m
+0
你通常使用什麼DEFAULT_BUFFER_SIZE這個方法? – 2014-12-16 14:39:10
相關問題
- 1. 如何在Java中製作ArrayList <Integer>的深層副本?
- 2. 製作字典的深層副本
- 3. 如何使用copyWithZone製作深層副本以複製結構?
- 4. 如何製作整個QDomDocument的深層副本
- 5. 如何製作Python類的深層副本?
- 6. 如何製作此構造函數的深層副本?
- 7. 如何製作Groovy ConfigObject的深層副本?
- 8. kxml節點的深層副本(java me)
- 9. 如何在java中創建深層副本
- 10. 如何執行char *的深層副本?
- 11. QML ListModel的深層副本
- 12. NSMutableDictionary的深層副本
- 13. 片段的深層副本
- 14. OpenCV cv深層副本::墊
- 15. 在java中獲取自定義JPanel的深層副本
- 16. Ruby中數組的深層副本
- 17. 爲什麼我的Java深層複製代碼告訴我「作業需要深度而非淺層的副本」?
- 18. Linq to Sql - 無法制作L2S實體的深層副本
- 19. SqlCommand.Clone()是否創建深層副本或淺層副本?
- 20. 如何製作像xmlbean XmlObject.copy()這樣的JAXB對象的深層副本?
- 21. 如何在UIKit中爲類實現深層副本?
- 22. OrderedDict兒童的深層副本
- 23. C指針結構的深層副本
- 24. 派生python對象的深層副本
- 25. 熊貓面板的深層副本?
- 26. 鏈接列表C++的深層副本
- 27. 可變的NSMutableDictionary深層副本
- 28. 一個NSMutableDictionary的深層可變副本
- 29. 教條記錄的深層副本
- 30. 二叉樹的深層副本
:
瞭解更多? Afaik你不能從一個流中讀兩次。 – thejh 2010-10-31 17:39:15
由於某些奇怪的原因,我認爲一旦使用了它,我的信息流就會被消耗。所以爲了讓sur不是這種情況,我想做一個深層次的複製。我正在使用android,並使用REST架構從web服務獲取圖像。 – Spredzy 2010-10-31 17:42:53
爲什麼不告訴我們相關的代碼並解釋你遇到的實際問題? – 2010-10-31 18:01:31