Я использую этот стандартный фрагмент кода, но он дает нехватку памяти. Пробовал google guava Bytestream.toArray и даже IOUtils.toByteArray, но не повезло. Цель состоит в том, чтобы получить длину входного потока для больших двоичных файлов для дальнейшей обработки входного потока. Также существует ограничение использования файловой системы.
byte[] data = new byte[4096];
while ((nRead = is.read(data, 0, data.length)) != -1) {
buffer.write(data, 0, nRead);
}