Проблема заключается в том, что массив байтов, который вы выделяете, слишком велик, и он занимает пространство кучи.
Вы можете попробовать запустить вашу программу с опциями -Xms и -Xmx, чтобы указать min и max heapпространство, которое использует виртуальная машина Java для запуска вашей программы.
Но я предлагаю вам не читать весь файл в байтовый массив для его обработки.Вы можете прочитать его часть в небольшой байтовый массив, обработать его и перейти к следующей части.Этот способ занимает меньше места в куче.