我目前正在尝试将大文件(> 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的内容(取决于设备),但我找不到加载那么多数据的好方法。
加载这些大文件最简单的解决方案是什么?
答案 0 :(得分:1)
而不是使用大文件使用多个较小的文件(~1MB)。如果您需要一次读取所有数据,请按顺序读取
答案 1 :(得分:0)
InputStreamReader
类将允许您逐字节读取文件。您已经在使用该类,但是您将其嵌入到BufferedReader
类中。所以丢弃BufferedReader
并逐字节地读取你的大文件。如果你这样做,并在你去的时候处理字节,那么你不需要在一次操作中读取整个文件。
答案 2 :(得分:0)
您可以通过char再次读取char,但是在使用这个较小的块后,请注意分配删除引用,因此Garbage Cleaner可以返回该内存。