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

Java Android正在读取大文件(内存不足异常),java,android,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

我目前正在尝试将大文件(>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
,自己一个字节一个字节地读取大文件。如果您这样做,并在运行时处理字节,那么您就不需要在一次操作中读取整个文件。

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

您需要将整个文件读取到内存中吗???你能把它切成小块吗???