Хорошо, я нашел способ сделать это, используя файловый канал, который отображается MappedByteBuffer для передачи памяти внутри себя.
RandomAccessFile raFile = new RandomAccessFile(MyFile, "rw");
FileChannel fileChannel = raFile.getChannel();
fileChannel.position(srcPosition);
fileChannel.transferFrom(fileChannel, dstPosition, count);
Это примерно в 200 раз быстрее (точнее: в два раза быстреепри чтении 1/100 части данных), чем при чтении int по int из MappedByteBuffer и записи его для дублирования, указывающего на другую позицию в том же файле.