[英]BufferedInputStream is throwing out-of-memory errors in Android
我正在嘗試使用BufferedInputStream
來加載外部DICOM文件,但最終會耗盡內存。 當我使用InputStream
,這從未出現過(我在通過assets
文件夾加載文件時這樣做了)。
我創建了自己的生產者-消費者線程來緩沖文件,因此實際上並不需要BufferedInputStream,但是我確實需要使用mark()
和reset()
,這在FileInputStream
是不可用的。
我該怎么回事呢? 是否有另一種InputStream
,我可以使用具有mark()
/ reset()
函數的File
? 我可以在BufferedInputStream
拋出錯誤之前以某種方式清空緩沖區嗎? 還是我應該找到一種方法來代替使用mark()
?
感謝您的輸入。
對於mark
和reset
以使用緩沖輸入, mark
和reset
之間的文件點需要保留在內存中。
解決方法取決於您實際上要做什么。 如果您只需要從已知位置開始讀取,可能是RandomAccessFile
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.