读取file到byte []数组时的java.lang.OutOfMemoryError

eWi*_*dII 8 java arrays io out-of-memory

是否有更清洁,更快速的方法:

BufferedReader inputReader = new BufferedReader(new InputStreamReader(context.openFileInput("data.txt")));
String inputString;
StringBuilder stringBuffer = new StringBuilder();
while ((inputString = inputReader.readLine()) != null) {
    stringBuffer.append(inputString + "\n");
}
text = stringBuffer.toString();
byte[] data = text.getBytes();
Run Code Online (Sandbox Code Playgroud)

基本上我正在尝试将文件转换为byte[],除非文件足够大,然后我遇到了一个outofmemory错误.我一直在四处寻找SO解决的办法,我想在这里做到这一点,也没有工作.任何帮助,将不胜感激.

Ash*_*Jha 6

几点建议:

  1. 您不需要创建字符串构建器.您可以直接从文件中读取字节.
  2. 如果您读取多个文件,请检查内存中剩余的byte []数组,即使不需要也是如此.
  3. 最后使用-Xmx选项增加java进程的最大内存.