У меня есть вызов API, который возвращает байтовый массив.В настоящее время я направляю результат в байтовый массив, затем проверяю совпадение контрольных сумм и записываю ByteArrayOutputStream в файл.Код выглядит примерно так и работает довольно хорошо.
String path = "file.txt";
ByteArrayOutputStream byteBuffer = new ByteArrayOutputStream();
int bufferSize = 1024;
byte[] buffer = new byte[bufferSize];
int len = 0;
while ((len = inputStream.read(buffer)) != -1) {
byteBuffer.write(buffer, 0, len);
}
FileOutputStream stream = new FileOutputStream(path);
stream.write(byteBuffer.toByteArray());
Я обеспокоен тем, что результат от inputtream потенциально может быть больше размера кучи в Android, и я могу получить исключения OutOfMemory, если весь байтовый массив находится в памяти.Каков самый элегантный способ записи inputStream в файл в виде кусков, чтобы байтовый массив никогда не превышал размер кучи?