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