Android读取大文件(内存不足异常)

时间:2013-05-26 12:29:53

标签: java android

我目前正在尝试将大文件(> 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的内容(取决于设备),但我找不到加载那么多数据的好方法。

加载这些大文件最简单的解决方案是什么?

3 个答案:

答案 0 :(得分:1)

而不是使用大文件使用多个较小的文件(~1MB)。如果您需要一次读取所有数据,请按顺序读取

答案 1 :(得分:0)

InputStreamReader类将允许您逐字节读取文件。您已经在使用该类,但是您将其嵌入到BufferedReader类中。所以丢弃BufferedReader并逐字节地读取你的大文件。如果你这样做,并在你去的时候处理字节,那么你不需要在一次操作中读取整个文件。

答案 2 :(得分:0)

您可以通过char再次读取char,但是在使用这个较小的块后,请注意分配删除引用,因此Garbage Cleaner可以返回该内存。