Вы можете использовать MappedByteBuffer с разбросом / сборкой ввода-вывода.
Производительность отправки будет ближе к TransferTo (), так как mmap также использует буферы ядра, аналогичные вызову sendFile ().
Половина псевдокода здесь, с одним вызовом записи:
MappedByteBuffer fileBuf = FileChannel.map(....);
ByteBuffer header = ...;
ByteBuffer trailer = ...;
ByteBuffer slice = fileBuf.slice(); // Set limit and position before slice
socketChannel.write(new ByteBuffer[]{header, slice, trailer}, 0, 3);