Для большинства применений это не имеет значения. Если вы используете прямые буферы NIO для копирования данных, это может сохранить одну или две копии памяти и иметь ощутимое улучшение, однако я предлагаю вам сделать то, что вы считаете наиболее простым, и, скорее всего, это будет более чем достаточно быстро в Java. то есть вы должны достичь пределов вашей сети или дисковой подсистемы.
Я бы начал с IOUtils.copy (in, out); и посмотрим, достаточно ли это быстро.