[英]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.