@Override
public final long transferTo(long position, long count, FileChannel target) throws IOException {
long r;
if (functions != null && functions.length > 0) {
r = super.transferTo(position, count, new ChannelFunctionFileChannel(target, functions));
} else {
r = super.transferTo(position, count, target);
}
return r;
}