public static int transferRemaining(ByteBuffer src, ByteBuffer trg) { int xfer = Math.Min(src.remaining(), trg.remaining()); trg.put(src.array(), src.position() + src.arrayOffset(), xfer); src.position(src.position() + xfer); return(xfer); }
public static int transferUpTo(ByteBuffer src, ByteBuffer trg, int maxCount) { int xfer = Math.Min(Math.Min(src.remaining(), trg.remaining()), maxCount); //int oldLimit = src.limit(); //src.limit( src.position() + xfer ); trg.put(src.array(), src.position() + src.arrayOffset(), xfer); src.position(src.position() + xfer); return(xfer); }