2

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

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

4

3 回答 3

1

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

于 2013-05-26T12:32:35.823 回答
0

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

于 2013-05-26T12:33:59.823 回答
0

您可以逐个字符地读取字符,但要注意在使用这个较小的块后分配删除引用,以便垃圾清理器可以返回该内存。

于 2013-05-26T12:35:44.993 回答