Есть ли более чистый и быстрый способ сделать это:
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();
В основном я пытаюсь преобразовать файл в byte[]
, за исключением того, что если файл достаточно большой, я сталкиваюсь с ошибкой нехватки памяти. Я искал SO для решения , Я пытался сделать это здесь, и это не сработало. Любая помощь будет оценена по достоинству.
-Xmx
вы также уменьшаете доступную собственную память, а FileInputStream использует собственную память, хотя это всего лишь теория. Флаг-Xmx
увеличивает только максимальный размер кучи, а не максимальный объем памяти для вашего java-процесса, как вы указываете, который ограничен 4 ГБ для 32-разрядной Java. 11.10.2018