code: public Result transfer(long count) {
  		if (count < 0L) throw new IllegalArgumentException("negative count");
  		return buffer == null ? transferNoBuffer(count) : transferBuffered(count);
  	}
docs: Transfers the specified number of bytes from the source to the target.
  Fewer bytes may be transferred if an end-of-stream condition occurs in
  either the source or the target.
  
  @param count
  the number of bytes to be transferred
  @return the result of the transfer