Вы можете использовать Apache IOUtils.copy (in, out) или
import org.apache.commons.fileupload.util.Streams;
...
Streams.copy(in, out, false);
Проверка источника может оказаться интересной. (http://koders.com?)
Существует канал java.nio.Cannel с методом TransferTo, в сообществе которого смешанные мнения, более подходящие для файлов меньшего и большего размера.
Простая блочная копия между Input / OutputStream будет в порядке. Вы можете обернуть его в буферизованные потоки.