簡體   English   中英

Android讀取大文件(內存不足異常)

[英]Android reading large Files (out of memory exception)

我目前正在嘗試將大文件(> 14MB)讀取到我的Android應用中。 這是我當前正在使用的代碼:

AssetManager manager = context.getAssets();
InputStream stream = manager.open(Filename);
BufferedReader br = new BufferedReader(new InputStreamReader(stream));
Scontent = br.readLine();  //I just load one big line that is bigger than 14 MB

但是我在〜14MB的分配上遇到了內存不足的異常。 我讀到一些有關最大應用程序大小為16MB(取決於設備)的信息,但是我找不到加載這么多數據的好方法。

加載如此大文件的最簡單解決方案是什么?

而不是使用大文件,而是使用多個小文件(〜1MB)。 如果需要一次讀取所有數據,請依次讀取

InputStreamReader類將使您可以逐字節讀取文件。 您已經在使用該類,但是將其嵌入到BufferedReader類中。 因此,請丟棄BufferedReader並逐字節讀取大文件。 如果這樣做,並在處理過程中處理字節,則無需一次操作即可讀取整個文件。

您可以按字符讀取char,但是可以再次讀取,但是請注意在使用此較小的塊后,有關分配的引用會移除,因此Garbage Cleaner可以返回該內存。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM