public abstract int write(ByteBuffer src) throws IOException;
public final long write(ByteBuffer[] srcs) throws IOException { long b = 0;  for (int i = 0; i < srcs.length; i++) b += write(srcs[i]);  return b; }
  public abstract int write(ByteBuffer src) throws IOException;